Como llenar este array desde una consulta a la DB?

Iniciado por luison, 13 Febrero 2010, 17:58 PM

0 Miembros y 1 Visitante están viendo este tema.

luison

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?

Kasi

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.

luison

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

Kasi

Puedes poner aqui el error que te lanza a ver si conseguimos solucionarlo.

Un saludo

luison

#4
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



Esto no permite que el login se cargue  :-X