我的数据库看起来是这样的:建立从SQL查询结果的JSON对象在PHP
我的目标是创建一个SQL查询,这将产生以下JSON对象:
var data = [
"year1":[
"val1":[
{"DATE":a1, "HEADER":b1, "MESSAGES":c1},
{"DATE":a2, "HEADER":b2, "MESSAGES":c2},
{"DATE":a6, "HEADER":b6, "MESSAGES":c6},
],
"val2":[
{"DATE":a5, "HEADER":b5, "MESSAGES":c5},
{"DATE":a8, "HEADER":b8, "MESSAGES":c8},
],
],
"year2":[
"val3":[
{"DATE":a3, "HEADER":b3, "MESSAGES":c3},
{"DATE":a4, "HEADER":b4, "MESSAGES":c4},
{"DATE":a7, "HEADER":b7, "MESSAGES":c7},
],
]
];
我已经问过一些非常相似的东西。但后来我没有使用“年”(所以现在有点复杂),只有“val1”,“val2”等值。到目前为止,我已经试过这样:
$connect = mysqli_connect("localhost", "root", "root", "Data");
$sql_year = "SELECT jaar FROM Data";
$result_year = mysqli_query($connect, $sql_year);
$data_year = array();
while ($row = mysqli_fetch_array($result_year, MYSQLI_ASSOC)) {
$data_year[$row['jaar']][] = array(
"maand"=> $row['maand'],
);
$sql_month = "SELECT * FROM Data WHERE jaar =".$row['jaar'];
$result_month = mysqli_query($connect, $sql_month);
$data_month = array();
while ($row = mysqli_fetch_array($result_month, MYSQLI_ASSOC)) {
$data_month[$row['maand']][] = array(
"day"=> $row['day'],
"weekday"=> $row['weekday'],
"zaal"=> $row['zaal'],
"stad" => $row['stad']
);
}
}
header('Content-Type: application/json');
echo json_encode($data_year);
这** **真的要提到的PHP和标题和标签中的mysql。要挑选一些示例 - 如果您要问如何使用PostgreSQL(本机支持JSON数据类型)或从XQuery(它将数据库查询结果恢复为易于转换的形式一个可以被序列化为JSON的XML结构)。 –