Mysql извлекает все строки и эхо как json

У меня есть база данных с 5 столбцами и несколькими строками. Я хочу получить первые 3 строки и повторить их как массив. Пока я могу получить только первую строку (я новичок в PHP и mysql). Вот мой PHP:

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

Помощь будет высоко оценена.

Вы должны просмотреть результаты. mysql_fetch_row получает их по одному.

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

Код будет выглядеть следующим образом:

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

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ Расширение mysql устарело в PHP 5.5, как указано в комментариях, которые вы должны использовать mysqli или PDO. Вы бы просто заменили mysqli_fetch_row в коде выше. http://www.php.net/manual/en/mysqli-result.fetch-row.php

Мне нравится это при запросе соединения базы данных ODBC с PHP 5.5.7, результаты будут в формате JSON:

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

Получение результатов, позволяющих редактировать поля:

 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); } 

Или, если я не хочу ничего менять, я мог бы упростить так:

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

Что делать, если я хочу вернуть результаты в формате JSON ?, easy:

 echo json_encode($response, true); 

Вы можете изменить odbc_fetch_array для mysqli_fetch_array для запроса mysql db.

Согласно документации PHP mysql_fetch_row (кроме того, она устарела, и вы должны использовать mysqli или PDO)

Возвращает числовой массив, соответствующий выбранной строке, и перемещает указатель внутренних данных вперед.

поэтому вам нужно, например, цикл while для извлечения всех строк:

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

Я оставлю это вам, как только получить 3 строки 🙂

Вы должны поместить это в какой-то цикл, mysql_fetch_row возвращает результаты по одному.

Пример: http://www.php.net/manual/en/mysqli-result.fetch-row.php#example-1794