【发布时间】:2015-01-29 17:03:28
【问题描述】:
我很难尝试在我的 PHP 脚本中加入两个 MySQL 表,然后将其格式化为 JSON 以由我的私有应用程序中的 javascript 解释。该应用仅供我们的美术团队对我们公司生产的各种产品进行编辑。
此过程的目的是创建需要注意的产品列表,以及每个产品中的“任务”清单,这些清单可以在完成时进行检查(因此是“检查”字段)。
表格的格式如下:
products表:
+------+-----------+-----------+---------+
| id | task_id | product | notes |
+------+-----------+-----------+---------+
| 10 | 1 | Item 1 | |
+------+-----------+-----------+---------+
| 11 | 2 | Item 2 | |
+------+-----------+-----------+---------+
tasks表:
+------+-----------+---------------+---------+
| id | task_id | task | check |
+------+-----------+---------------+---------+
| 1 | 1 | Fix Box Art | 0 |
+------+-----------+---------------+---------+
| 2 | 1 | Add Copyright | 1 |
+------+-----------+---------------+---------+
| 3 | 2 | Update Text | 0 |
+------+-----------+---------------+---------+
我已经能够使用以下代码在 PHP 中加入表格:
SELECT
products.*,
GROUP_CONCAT(tasks.task, tasks.check) AS steps
FROM products
LEFT JOIN task_steps ON products.task_id = task.task_id
在一个while循环中,我正在构建一个这样的数组:
$output[] =
array (
"id" => $row['id'],
"task_id" => $row['task_id'],
"product" => $row['product'],
"notes" => $row['notes'],
"tasks" => $row['steps']
);
然后我将数组输出为 JSON:
echo json_encode($output);
这就是我卡住的地方。我已经能够输出一些 JSON,但没有接近我正在寻找的东西。我正在寻找的格式如下所示:
[
{
"id":"10",
"task_id":"1",
"product":"Item 1",
"notes":"",
"tasks":[
{
"task":"Fix Box Art",
"check":"0"
},
{
"task":"Add Copyright",
"check":"1"
}
]
}
]
任何人都可以在我应该如何将表格数据格式化为上述 JSON 格式的正确方向上推动我,或者如果我一起朝着错误的方向前进,也许可以建议一种替代方法?
【问题讨论】: