我能够使用php脚本从MySQL获取数据到单个JSON数组,但我不知道如何从数据库中获取多个列数据到嵌套的JSON数组。请帮我理解这一点。
此php代码适用于将数据提取到单个JSON数组
<?php
require "conn.php";
$sql ="select * from upcomingevent_banner";
$result = mysqli_query($conn,$sql);
$response = array();
while ($row = mysqli_fetch_array($result))
{
array_push($response,array("image"=>$row[1]));
}
echo json_encode(array("server_response"=>$response));
$conn->close();
?>
我想要以下类型的JSON数组,我需要使用哪些PHP代码?
{
"data": [
{
"title": "Dance",
"section": [
{
"name": "kids dancing in school",
"image": "http://images1.com"
},
{
"name": "Bharatanattyam",
"image": "http://image2.com
},
]
},
{
"title": "Music",
"section": [
{
"name": "keyboard player",
"image": "image3.com"
},
{
"name": "you gotta do that",
"image": "https://image4.com"
},
]
}
]
}
答案 0 :(得分:1)
您需要构建适当的数组,然后您可以使用json_encode()
将其转换为JSON
。产生样本JSON的数组是这样的:
echo json_encode(array(
"data"=>array(
array(
"title"=>"Dance",
"section"=>array(
array(
"name"=>"kids dancing in school",
"image"=>"http://images1.com",
),
array(
"name"=>"Bharatanattyam",
"image"=>"http://image2.com",
),
),
),
array(
"title"=>"Music",
"section"=>array(
array(
"name"=>"keyboard player",
"image"=>"image3.com",
),
array(
"name"=>"you gotta do that",
"image"=>"http://image4.com",
),
),
),
),
));
注意:您无法从单个SQL语句中检索这样的多级数组。您可以做的最好的事是具有命名列的行数组。 section
是一个包含两行的数组,每行包含两列。 data
也是一个数组行,每行包含两列。
因此,为了获得这个多级数组,你将不得不手动构建它,但是“gimme t codz”是Stack Overflow的主题。因此,请仔细考虑,如果您遇到其他麻烦,请使用代码发布其他问题。