Возможный дубликат:
JSON кодирует результаты MySQL
Я хочу использовать php для создания json-объекта, как показано ниже. он вернет строку как ответ из запроса sql результата.
{"Orders":[ {"DeliveryId":"DeliveryId","CustomerName":"CustomerName","PhoneNumber":"PhoneNumber","Address":"Address"}, {"DeliveryId":"DeliveryId","CustomerName":"CustomerName","PhoneNumber":"PhoneNumber","Address":"Address"} ] }
мой код
<?php mysql_connect("mysql12.000webhost.com","a4602996_longvan","longvan2012"); mysql_select_db("a4602996_lv"); $id=$_POST[user]; $sql=mysql_query("select * from testlongvan where Status = 'PACKED'" ); $json = array(); if(mysql_num_rows($sql)){ while($row=mysql_fetch_row($sql)){ $json['Orders'][]=$row; } } //while($row=mysql_fetch_assoc($sql)) //$output[]=$row; print(json_encode($json)); mysql_close(); ?>
в<?php mysql_connect("mysql12.000webhost.com","a4602996_longvan","longvan2012"); mysql_select_db("a4602996_lv"); $id=$_POST[user]; $sql=mysql_query("select * from testlongvan where Status = 'PACKED'" ); $json = array(); if(mysql_num_rows($sql)){ while($row=mysql_fetch_row($sql)){ $json['Orders'][]=$row; } } //while($row=mysql_fetch_assoc($sql)) //$output[]=$row; print(json_encode($json)); mysql_close(); ?>
Но при использовании моего кода результат не тот, который я ожидал:
{«Заказы»: [[«longvan», «10/12/2012», «Be34433jh», «Long Van», «115 Pham Viet Chanh, quan Binh Thanh», «http://longvansolution.tk/image/ ".", "PACKED", "0909056788"], ["takehi", "24/12/2012", "BF6464633", "Vn-zoom", "16 nguyen cuu van, quan binh thanh", "http : //longvansolution.tk/image/hoadon3.jpg "," PACKED "," 098897657 "]]}
Вы можете мне помочь?
Вы должны создать массив для каждой строки, чтобы указать имя и значение поля.
$json['Orders'][] = array('DeliveryId' => $row[0], 'CustomerName' => $row[1], ...);
Или используйте функцию mysqli_fetch_assoc (), если имя столбца таблицы именно то, что вы хотите использовать в своем JSON:
$rows = array(); while($r = mysqli_fetch_assoc($sql)) { $rows[] = $r; } $data = array('Orders' => $rows); print json_encode($data);