Я хочу получить набор записей из таблицы MySQL в виде массива.
До сих пор мне удалось получить каждую строку как ассоциативный массив. Но я хочу, чтобы все строки в одном массиве, потому что я должен получить доступ к этому полному объекту в jQuery, чтобы отобразить их.
Это то, что я сделал до сих пор. Это мой скрипт .php для извлечения данных.
//select query $result = mysql_query("SELECT * FROM student",$con) or die (mysql_error()); $numRows = mysql_num_rows($result); //to iterate the for loop //passing as an associative array for ($count = 0; $count < $numRows; $count++){ $row = mysql_fetch_array($result, MYSQL_ASSOC); echo json_encode($row); }
Это то, что я сейчас получаю
{"StuId":"1","fName":"Saman","lName":"Kumara","age":"14","grade":"A"} {"StuId":"2","fName":"Marry","lName":"Vass","age":"12","grade":"B"} {"StuId":"3","fName":"Navjoth","lName":"Bogal","age":"32","grade":"A"} {"StuId":"4","fName":"Jassu","lName":"Singh","age":"22","grade":"E"}
Но я хочу, чтобы этот результат был установлен следующим образом.
[ {"TEST1":45,"TEST2":23,"TEST3":"DATA1"}, {"TEST1":46,"TEST2":24,"TEST3":"DATA2"}, {"TEST1":47,"TEST2":25,"TEST3":"DATA3"} ]
Я ищу помощь в этом. Заранее спасибо.
Поместите все это в один массив, затем json_encode:
$json = array( ); $result = mysql_query("SELECT * FROM student",$con) or die (mysql_error()); while( $row = mysql_fetch_assoc( $result ) ) { $json[] = $row; } echo json_encode( $json );
FYI: нет необходимости подсчитывать количество результатов для цикла. mysql_fetch_ * будет внутренне держать указатель на текущую запись и увеличивать ее на каждый вызов. Это делает его идеальным кандидатом для использования в простой петле. Кроме того, вместо mysql_fetch_array и передачи MYSQL_ASSOC вы можете просто использовать mysql_fetch_assoc, метод, который я предпочитаю. Делает код более легким для чтения (на мой взгляд, так или иначе).