我有Ajax脚本调用PHP文件,对MySQL进行查询,然后在JSON中格式化响应,以便我可以使用它。我的问题是,使用Ajax调用发送的1个id,我需要对不同的表进行多次查询,其中一些返回1个结果,还有一些多个结果。所有这些数据都必须使用相同的Ajax调用获取,所以我的问题是如何正确格式化JSON,以便我可以将它与javascript一起使用。这是我的PHP:
try
{
$sql ="SELECT * FROM newLoads WHERE `id`='$id' LIMIT 1 ";
$s= $conn->query($sql);
}
catch (PDOException $e)
{
echo "Error SQL SELECT";
exit();
}
while ($row = $s->fetch())
{
$load['id'] = $row['id'];
$load['dateAdded'] = $row['dateAdded'];
...
$all['load'] = $load;
}
print json_encode($all);
返回{"load":{"id":"00000361","dateAdded":"2015-01-15"...}}
并且很好,但是如何继续下一个必须包含多个响应的查询呢?我尝试将第二个查询添加到$all
,但它仅在单个结果时才有效,而它可能是多个。我认为这只是一个语法问题,但我是Ajax的新手,所以任何帮助都会非常感激。
答案 0 :(得分:2)
您可以执行($s2
是第二次查询的结果):
$all['items'] = array();
while ($row = $s2->fetch()) {
$all['items'][] = $row;
}
在Javascript中,您需要遍历这些项目,例如:
for (i = 0; i < j.items.length; i++) {
console.log(j.items[i]);
}