2012-06-29 15 views
13

Me pregunto si existe una función en php que me permita poner todos mis datos seleccionados en una matriz. Actualmente estoy usando mysql_fetch_array y como he leído en el manual, esa función ganó No busco cada registro en la tabla.Obtener todas las filas seleccionadas de mysql en una matriz

$result = mysql_query("SELECT * FROM $tableName");    
$array = mysql_fetch_array($result); 

    echo json_encode($array); 
+2

Esos '' mysql _... funciones son viejos e inseguro Debes usar 'mysqli' o mejores PDOs - http://php.net/manual/en/book.mysqli.php, http://php.net/manual/en/book.pdo.php – Raekye

+0

Como dijo Raeki, mysql es bastante antiguo, pero aparte de eso, si aún desea recorrer el resultado, puede hacerlo con el siguiente código: '$ allRows = array(); while ($ row = mysql_fetch_array ($ result) {$ allRows [] = $ row} ' – toske

+2

Por favor, no use las funciones' mysql_ * 'para el nuevo código. Ya no se mantienen y la comunidad ha comenzado el proceso de desactivación ] (http://goo.gl/KJveJ). Consulte el [** cuadro rojo **] (http://goo.gl/GPmFd). En su lugar, debe obtener más información sobre [declaraciones preparadas] (http: // goo .gl/vn8zQ) y use ya sea [PDO] (http://php.net/pdo) o [MySQLi] (http://php.net/mysqli). Si no puede decidir, [este artículo] (http://goo.gl/3gqF9) le ayudará a elegir. Si le interesa aprender, [aquí hay un buen tutorial de PDO] (http://goo.gl/vFWnC). –

Respuesta

39

Yo sugeriría el uso de MySQLi o MySQL DOP para los propósitos de rendimiento y seguridad, sino para responder a la pregunta:

while($row = mysql_fetch_assoc($result)){ 
    $json[] = $row; 
} 

echo json_encode($json); 

Si pasa al Mysqli que podría hacer:

$json = mysqli_fetch_all ($result, MYSQLI_ASSOC); 
echo json_encode($json); 
5

Puede intentarlo:

$rows = array(); 
while($row = mysql_fetch_array($result)){ 
    array_push($rows, $row); 
} 
echo json_encode($rows); 
7
  1. bucle a través de los resultados y colocar cada uno en una matriz

  2. uso mysqli_fetch_all() a llegar a todos ellos a la vez

1
$name=array(); 
while($result=mysql_fetch_array($res)) { 
    $name[]=array('Id'=>$result['id']); 
    // here you want to fetch all 
    // records from table like this. 
    // then you should get the array 
    // from all rows into one array 
} 
Cuestiones relacionadas