Как закодировать несколько результатов MySQLi в правильный формат json?
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$post_data = array(
'item' => array(
'ID' => $row["id"],
'Name' => $row["name"],
'Category' => $row["category"],
'Saldo' => $row["saldo"],
'Editor' => $row["editor"],
'Edited' => $row["reg_date"]
)
);
echo json_encode($post_data);
, который выводит:
{"item":{"ID":"123456","Name":"Chair","Category":"Trashes","Saldo":"40","Editor":"Seppo","Edited":"2015-09-15 13:54:36"}}{"item":{"ID":"123888","Nimi":"Cheese","Kategoria":"Food","Saldo":"3","Editor":"Jorma","Edited:"2015-09-15 14:14:17"}}
Когда это должно выглядеть примерно так:
[{"item":{"ID":"123456","Name":"Chair","Category":"Trashes","Saldo":"40","Editor":"Seppo","Edited":"2015-09-15 13:54:36"}},{"item":{"ID":"123888","Nimi":"Cheese","Kategoria":"Food","Saldo":"3","Editor":"Jorma","Edited:"2015-09-15 14:14:17"}}]
, который не в правильном формате json. Как мне отредактировать этот код, чтобы все мои элементы mysql прошли.
У меня из головы даже долгое время не выходили результаты...
2
1 answers
Вы сбрасываете значение $post_data на каждой итерации. Вы должны просто добавить к нему.
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
$post_data[] = array(
'item' => array(
'ID' => $row["id"],
'Name' => $row["name"],
'Category' => $row["category"],
'Saldo' => $row["saldo"],
'Editor' => $row["editor"],
'Edited' => $row["reg_date"]
)
);
}
echo json_encode($post_data);
}
1
Author: Chris Magnussen, 2015-09-15 17:37:50