Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: luison en 13 Febrero 2010, 17:58 pm



Título: Como llenar este array desde una consulta a la DB?
Publicado por: luison en 13 Febrero 2010, 17:58 pm
Hola a to2.

Integré el ajax chat a mi sitio, pero los usuarios los maneja en un archivo users.php
Código
  1. <?php
  2.  
  3.  
  4. // List containing the registered chat users:
  5. $users = array();
  6.  
  7. // Default guest user (don't delete this one):
  8. $users[0] = array();
  9. $users[0]['userRole'] = AJAX_CHAT_GUEST;
  10. $users[0]['userName'] = null;
  11. $users[0]['password'] = null;
  12. $users[0]['channels'] = array(0);
  13.  
  14. // Sample admin user:
  15. $users[1] = array();
  16. $users[1]['userRole'] = AJAX_CHAT_ADMIN;
  17. $users[1]['userName'] = 'admin';
  18. $users[1]['password'] = 'admin';
  19. $users[1]['channels'] = array(0,1);
  20.  
  21. // Sample moderator user:
  22. $users[2] = array();
  23. $users[2]['userRole'] = AJAX_CHAT_MODERATOR;
  24. $users[2]['userName'] = 'moderator';
  25. $users[2]['password'] = 'moderator';
  26. $users[2]['channels'] = array(0,1);
  27.  
  28. // Sample registered user:
  29. $users[3] = array();
  30. $users[3]['userRole'] = AJAX_CHAT_USER;
  31. $users[3]['userName'] = 'user';
  32. $users[3]['password'] = 'user';
  33. $users[3]['channels'] = array(0,1);
  34. ?>
  35.  

Necesito llenar ese array de una tabla usuarios desde la base de datos, porque manejo miles de usuarios, y declararlos todos en el archivo users.php me parece tedioso y poco dinamico.

Tabla Usuarios:
--------------------------
id_usuario user_Role UserName Password Channels

Alguien que me pueda echar un cable?


Título: Re: Como llenar este array desde una consulta a la DB?
Publicado por: Kasi en 13 Febrero 2010, 18:44 pm
Buenas, a ver si podemos ayudarte.

Para empezar, hariamos lo siguiente:
Código
  1. $query = 'SELECT id_usuario user_Role UserName Password Channels FROM Usuarios';
  2. $result = mysql_query($query);
  3.  

Con esto ya tenemos en un recurso de mysql todos los users, ahora toca cargarlos al array del siguiente modo:

Código
  1. $users = array();
  2. $i = 0;
  3. while($registro = mysql_fetch_array($result)){
  4.      $users[$i] = array();
  5.      $users[$i]['userRole'] = $registro['user_Role'];
  6.      $users[$i]['userName'] = $registro['userName'];
  7.      $users[$i]['password'] = $registro['Password'];
  8.      $users[$i]['channels'] = $registro['Channels'];
  9.      //Este ultimo sobre channels no se muy bien como procesartelo, asi que esa parte la dejo abierta a duda para otros :P
  10.      $i++ ;
  11. }
  12.  

Con esto tendriamos el array $users lleno con todos los usuarios de la tabla.
Hay maneras mejores para hacer lo que pides, pero esta es la mas sencilla que veo ahora mismo :P

Espero haber sido de algo de ayuda, un saludo.


Título: Re: Como llenar este array desde una consulta a la DB?
Publicado por: luison en 13 Febrero 2010, 19:24 pm
Gracias Kasi, efectivamente llena el array desde la consulta, excepto el channels que me marca un error.

Trataré de solucionarlo. Gracias y esperando comentarios y/o tips.  ;D


Título: Re: Como llenar este array desde una consulta a la DB?
Publicado por: Kasi en 13 Febrero 2010, 19:42 pm
Puedes poner aqui el error que te lanza a ver si conseguimos solucionarlo.

Un saludo


Título: Re: Como llenar este array desde una consulta a la DB?
Publicado por: luison en 15 Febrero 2010, 16:49 pm
Hola, usando el siguiente codigo:

Código
  1. <?php
  2. $conexion=mysql_connect("localhost", 'xxxx', 'xxxx');
  3. mysql_select_db("xxxx",$conexion);
  4.  
  5.  
  6. $query = 'SELECT id_usuario,user_Role,userName,Password,Channels FROM Usuarios';
  7. $result = mysql_query($query);
  8.  
  9.  
  10. $users = array();
  11. $i = 0;
  12. while($registro = mysql_fetch_array($result)){
  13.      $users[$i] = array();
  14.      $users[$i]['userRole'] = $registro['user_Role'];
  15.      $users[$i]['userName'] = $registro['userName'];
  16.      $users[$i]['password'] = $registro['Password'];
  17.      $users[$i]['channels'] = $registro['Channels'];
  18.  
  19.      $i++ ;
  20. }
  21.  
  22. //echo 'INFO'.$users[0]['Channels'];
  23. ?>
  24.  
  25.  

Me muestra el siguiente error

(http://www.imagecheese.com/images/error.png)

Esto no permite que el login se cargue  :-X