使用php mysql创建嵌套的json对象

时间:2017-04-10 22:13:35

标签: php mysql json

让我们说我在我的数据库中创建了两个表:

`INSERT INTO `months` (`month_id`, `month_name`) VALUES ('1', 'January');`

`INSERT INTO `weeks_and_days` (`week_id`, `week_nr`, `day_nr`) VALUES ('1', '1', '1'), ('2', '1', '2'), ('3', '1', '3'), ('4', '1', '4'), ('5', '1', '5'), ('6', '1', '6'), ('7', '1', '7');`

正确的PHP和SQL代码应该是什么?完全以下嵌套的JSON:

{ "month_name": "Yanuary", "week_nr": { "1": [{ "day_nr": [1, 2, 3, 4, 5, 6, 7] }] } }

我读了几个答案,并尝试将它们应用到我的代码中,但我发现了。我需要一些简单公式,因为我在编程方面很新。

1 个答案:

答案 0 :(得分:0)

您应该编写查询以获取不同的值并将它们放在一起以生成json,而不是直接从MySQL生成json,例如:

SELECT month_name
FROM months
WHERE month_id = 1;

SELECT week_nr, GROUP_CONCAT(day_nr)
FROM weeks_and_days
GROUP BY week_nr;

第一个查询为您提供月份名称,第二个查询为您提供周/日信息。

请注意,weeks_and_days表没有month_id的任何列,需要一个映射到months表(通过外键)。