如何使用Php表示JSON中的一对多关系?

时间:2017-12-16 00:53:30

标签: php mysql json

我有一个有两列的MySQL表 customer_id和item_id,

customer_id可以有多个item_id,(一对多关系),

如何使用MySQL和PHP表示/循环返回的查询生成JSON输出(类似于上面的结构)?

例如,我希望我的JSON输出看起来像这样:

  {
        "data": 
         {
            "customer_id": "10",
            "item_id": " 1"
          },
         {
           "customer_id": "10",
            "item_id": " 2"
         },
  {
           "customer_id": "10",
           "item_id": " 3"
         }
   }

感谢。

2 个答案:

答案 0 :(得分:1)

我猜你会从MySQL获取数据。

$results = mysqli_query("SELECT customer_id, item_id FROM your_table_name");
$data = array();
while($result = mysqli_fetch_assoc($results)) {
     $data['data'][] = $result;
}

echo json_encode($data);

答案 1 :(得分:0)

有很多方法可以做到这一点。这是一个建议。

$data = [
    'Customer' => [
        'customer_id' => 29973,
    ],
    'Item' => [
        ['item_id' => 1 ],
        ['item_id' => 2 ],
        ['item_id' => 3 ]
    ]
];

echo json_encode($data) . "\n";

输出:

{
    "Customer": {
        "customer_id": 29973
    },
    "Item": [
        {
            "item_id": 1
        },
        {
            "item_id": 2
        },
        {
            "item_id": 3
        }
    ]
}