Mysql busca todas las filas y echo como json

Tengo una base de datos con 5 columnas y múltiples filas. Quiero buscar las primeras 3 filas y repetirlas como una matriz. Hasta ahora solo puedo obtener la primera fila (soy nuevo en PHP y mysql). Aquí está mi PHP hasta ahora:

//==== FETCH DATA $result = mysql_query("SELECT * FROM $tableName"); $array = mysql_fetch_row($result); //==== ECHO AS JSON echo json_encode($array); 

La ayuda sería muy apreciada.

Necesitas recorrer los resultados. mysql_fetch_row obtiene uno a la vez.

http://php.net/manual/en/function.mysql-fetch-row.php

El código terminaría así:

 $jsonData = array(); while ($array = mysql_fetch_row($result)) { $jsonData[] = $array; } echo json_encode($jsonData); //json_encode() 

TENGA EN CUENTA QUE la extensión mysql está en desuso en PHP 5.5, como se indica en los comentarios, debe usar mysqli o PDO. Simplemente sustituiría mysqli_fetch_row en el código anterior. http://www.php.net/manual/en/mysqli-result.fetch-row.php

Me gusta esto mientras consulto una conexión de base de datos ODBC con PHP 5.5.7, los resultados estarán en formato JSON:

 $conn = odbc_connect($odbc_name, 'user', 'pass'); $result = odbc_exec($conn, $sql_query); 

Obteniendo resultados que permiten editar campos:

 while( $row = odbc_fetch_array($result) ) { $json['field_1'] = $row['field_1']; $json['field_2'] = $row['field_2']; $json['field_3'] = $row['field_1'] + $row['field_2']; array_push($response, $json); } 

O si no quiero cambiar nada, podría simplificar así:

 while ($array = odbc_fetch_array($result)) { $response[] = $array; } 

¿Qué pasa si quiero devolver los resultados en formato JSON ?, fácil:

 echo json_encode($response, true); 

Puede cambiar odbc_fetch_array para mysqli_fetch_array para consultar un MySql db.

De acuerdo con la documentación de PHP mysql_fetch_row (además de que está en desuso y debe usar mysqli o PDO)

Devuelve una matriz numérica que corresponde a la fila recuperada y mueve el puntero de datos interno hacia adelante.

por lo que necesita, por ejemplo, un ciclo while para obtener todas las filas:

 $rows = array(); while ($row = mysql_fetch_row($result)) { $rows[] = $row; } echo json_encode($rows); 

Te dejo que solo busques 3 filas 🙂

Necesitas poner esto en una especie de bucle, mysql_fetch_row devuelve resultados de a uno por vez.

Ver ejemplo: http://www.php.net/manual/en/mysqli-result.fetch-row.php#example-1794

$ result = mysql_query (“SELECT * FROM $ tableName ORDER BY id LIMIT 3”);

$ json = array (); while ($ array = mysql_fetch_row ($ result)) {

$ json [] = $ array; }

echo json_encode ($ json);