Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (php) [Seleccionar]

<?php


// List containing the registered chat users:
$users = array();

// Default guest user (don't delete this one):
$users[0] = array();
$users[0]['userRole'] = AJAX_CHAT_GUEST;
$users[0]['userName'] = null;
$users[0]['password'] = null;
$users[0]['channels'] = array(0);

// Sample admin user:
$users[1] = array();
$users[1]['userRole'] = AJAX_CHAT_ADMIN;
$users[1]['userName'] = 'admin';
$users[1]['password'] = 'admin';
$users[1]['channels'] = array(0,1);

// Sample moderator user:
$users[2] = array();
$users[2]['userRole'] = AJAX_CHAT_MODERATOR;
$users[2]['userName'] = 'moderator';
$users[2]['password'] = 'moderator';
$users[2]['channels'] = array(0,1);

// Sample registered user:
$users[3] = array();
$users[3]['userRole'] = AJAX_CHAT_USER;
$users[3]['userName'] = 'user';
$users[3]['password'] = 'user';
$users[3]['channels'] = array(0,1);
?>



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 (php) [Seleccionar]

$query = 'SELECT id_usuario user_Role UserName Password Channels FROM Usuarios';
$result = mysql_query($query);


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

Código (php) [Seleccionar]

$users = array();
$i = 0;
while($registro = mysql_fetch_array($result)){
      $users[$i] = array();
      $users[$i]['userRole'] = $registro['user_Role'];
      $users[$i]['userName'] = $registro['userName'];
      $users[$i]['password'] = $registro['Password'];
      $users[$i]['channels'] = $registro['Channels'];
      //Este ultimo sobre channels no se muy bien como procesartelo, asi que esa parte la dejo abierta a duda para otros :P
      $i++ ;
}


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 (php) [Seleccionar]

<?php
$conexion
=mysql_connect("localhost"'xxxx''xxxx');
mysql_select_db("xxxx",$conexion);


$query 'SELECT id_usuario,user_Role,userName,Password,Channels FROM Usuarios';
$result mysql_query($query);


 
$users = array();
$i 0;
while(
$registro mysql_fetch_array($result)){
      
$users[$i] = array();
      
$users[$i]['userRole'] = $registro['user_Role'];
      
$users[$i]['userName'] = $registro['userName'];
      
$users[$i]['password'] = $registro['Password'];
      
$users[$i]['channels'] = $registro['Channels']; 
      
      
$i++ ;
}
 
//echo 'INFO'.$users[0]['Channels'];
?>




Me muestra el siguiente error

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

Esto no permite que el login se cargue  :-X