我正在从数据库中获取JSON文件,该数据库有两个表 semone ,其中包含属性 id,semester,cname 和表课程属性 coname and credit 。
我在php中编写的代码正在关注。
main.php
<?php
$user = "root";
$password = "";
$database = "scheduler";
$con = mysqli_connect("localhost", $user, $password, $database) or die ("Unable to connect");
$query = "SELECT semone.userid AS id, semone.semester AS semester, semone.cname AS name, courses.credit AS value
FROM semone
INNER JOIN courses
ON semone.cname = courses.coname" ;
$result = mysqli_query($con,$query)or die ("Unable to connect");
$info = array();
$test = array();
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
$row['xyz'] = array(
'name'=> $row['name'],
'value'=> $row['value']
);
$info[$row['id']]['children'][$row['semester']]['children'][]= $row['xyz'];
}
$data = json_encode(($info));
echo $data;
?>
我想获取JSON文件,如下面的代码所示,但我得到的是这样的东西。
output.json
{
"12345": {
"children": {
"first": {
"children": [{
"name": "C101",
"value": 100
},
{
"name": "C102",
"value": 100
}]
},
"second": {
"children": [{
"name": "C103",
"value": 50
}, {
"name": "C104",
"value": 100
}, {
"name": "C105",
"value": 100
}]
},
"third": {
"children": [{
"name": "C106",
"value": 50
}]
}
}
}
}
但这正是我所期待的。
expected.json
{
"id": 12345,
"children": [{
"semester": "first",
"children": [{
"name": "C101",
"value": 100
},
{
"name": "C102",
"value": 100
}]
}, {
"semester": "second",
"children": [{
"name": "C103",
"value": 50
}, {
"name": "C104",
"value": 100
}, {
"name": "C105",
"value": 100
}]
}, {
"semester": "third",
"children": [{
"name": "C106",
"value": 50
}]
}
}