2011-06-04 12 views
5

Estoy intentando crear una matriz asociativa a partir de los resultados de la consulta de MySQL. Me gustaría sacar dos columnas, una contiene nombres, otra contiene números. Lo que pretendo es crear algo como:Creación de una matriz asociativa de MySQL Query Results - PHP

$array = array('maggie'=> 68, 'Joseph' => 21, 'ireen'=> 64); 

$dbc = mysqli_connect('localhost', 'root', 'password', 'newbie'); 
$query = "SELECT fname, eng_end FROM members_records"; 
$result = mysqli_query($dbc, $query); 
while ($array = mysqli_fetch_assoc($result)) { 
$data_array[] = $array[]; 
} 

Soy incapaz de construir algo sensato entre llaves que pueden crear una matriz con los datos de la columna de nombre como claves y los datos de la columna de números como valores. Cada esfuerzo dentro de las llaves fue generosamente recompensado con largos y airados errores de análisis PHP.

¿Cómo procedo desde allí, o mi base es demasiado defectuosa para conducir a algo? ¿Cuál es la mejor manera de lograr mi objetivo (con un código mínimo, si es posible)?

+0

no debería ser '$ data_array [] = $ array;'? Además: '$ data_array' no está definido. – jisaacstone

Respuesta

0

Una matriz asociativa se crea de esta manera:

$a = array('foo' => 'bar', 'color' => 'green'); 

Usted puede agregar claves de su creación así:

$a['someotherkey'] = 'value'; 
22

es probable que desee algo como esto:

$dbc = mysqli_connect('localhost', 'root', 'password', 'newbie'); 
$query = "SELECT fname, eng_end FROM members_records"; 
$result = mysqli_query($dbc, $query); 
$data_array = array(); 
while ($row = mysqli_fetch_assoc($result)) { 
    $data_array[$row['name']] = $row['value']; 
} 

Sustituya sus nombres de columna reales por 'nombre' y 'valor'.

+0

Gracias @dkamins, agregué credenciales de base de datos correctas e hice sustituciones para filas de columna y funciona como un encanto! – Bululu

+0

@Bululu ¿Tenía la intención de "no aceptar" esta respuesta? – dkamins

Cuestiones relacionadas