首页 > 解决方案 > 使用 php 从数据库中的所有数据创建 json

问题描述

我想创建包含来自数据库的所有订单的 json。我试图编写这段代码,但它只返回一个订单。

  $query = mysql_query("SELECT * FROM orders  WHERE id_user = '".$userdata['user_login']."' ORDER BY `nom` ASC ");
    if ($query)
    {
        $i = 0;


    while ($row = mysql_fetch_assoc($query)) 
    {

    $where=$row["where"];
    $time_min=$row["time_min"];
    $time_max=$row["time_max"];
    $date1=$row["date1"];
    $date2=$row["date2"];
    $from=$row["from"];
    $id=$row["id"];
    $orders =[
    'from' => $from, 
    'where' => $where, 
    'time_min' => $time_min, 
    'time_max' => $time_max, 
    'date1' => $date1, 
    'date2' => $date2, 
    'id' => $id];
    $i++;
    }
}
$data = [ 
'count' =>$i,
'orders' => $orders
];
header('Content-type: application/json');
echo json_encode( $data );
exit;

现在响应如下所示:

现在

但我想要这样:

想

标签: phpjson

解决方案


附加到$orders数组:

  $query = mysql_query("SELECT * FROM orders  WHERE id_user = '".$userdata['user_login']."' ORDER BY `nom` ASC ");
    if ($query)
    {
        $i = 0;


    while ($row = mysql_fetch_assoc($query)) 
    {

    $where=$row["where"];
    $time_min=$row["time_min"];
    $time_max=$row["time_max"];
    $date1=$row["date1"];
    $date2=$row["date2"];
    $from=$row["from"];
    $id=$row["id"];
    $orders[] =[ // <--- The difference
    'from' => $from, 
    'where' => $where, 
    'time_min' => $time_min, 
    'time_max' => $time_max, 
    'date1' => $date1, 
    'date2' => $date2, 
    'id' => $id];
    $i++;
    }
}
$data = [ 
'count' =>$i,
'orders' => $orders
];
header('Content-type: application/json');
echo json_encode( $data );
exit;

推荐阅读