如何编写php代码来生成此json?
这是mysql查询的结果如何编写php代码来生成此json?,php,mysql,sql,json,Php,Mysql,Sql,Json,这是mysql查询的结果 ` date | link |sum 2015-06-29 |uploads/1_29_06_2015_9_18_37_image.jpg |6 2015-06-29 |uploads/1_29_06_2015_13_57_54_image.jpg|2 2015-06-30 |uploads/1_30_06_2015_0_26_44_image.jpg |2 2015-07-01 |up
` date | link |sum
2015-06-29 |uploads/1_29_06_2015_9_18_37_image.jpg |6
2015-06-29 |uploads/1_29_06_2015_13_57_54_image.jpg|2
2015-06-30 |uploads/1_30_06_2015_0_26_44_image.jpg |2
2015-07-01 |uploads/1_01_07_2015_2_44_47_image.jpg |3
2015-07-01 |uploads/1_01_07_2015_5_15_47_image.jpg |4
2015-07-02 |uploads/1_02_07_2015_1_40_05_image.jpg |2`
有人能帮我通过PHP生成一个json,格式如下
[
{
"date": "2015-06-29",
"values": [{"image":"uploads/1_29_06_2015_9_18_37_image.jpg","sum":6},{"image":"uploads/1_29_06_2015_13_57_54_image.jpg","sum":2}]
},
{
"date": "2015-06-30 ",
"values": [{"link":"uploads/1_30_06_2015_0_26_44_image.jpg","sum":2}]
}
]
我想在同一天将链接分组并求和
更新1:这是我的代码:
假设
$rows
包含所有获取的行:
$data = array();
foreach ($rows as $row) {
if (!array_key_exists($row['DATE'], $data)) {
$data[$row['DATE']] = array('date' => $row['DATE'], 'values' => array());
}
$data[$row['DATE']]['values'][] = array(
'image' => $row['LINK'],
'sum' => $row['SUM']
);
}
//this is your JSON
echo json_encode(array_values($data));
你把什么东西编好了吗?如果你的问题需要在代码中进行修复,你会得到更多的答案,而不是要求某人对整个事情进行编码。我尝试了代码。。我有一些错误。。。我正在检查是否是我做错了什么给我5分钟谢谢你的回答@jedrzej。我试过了。但我觉得我做错了什么。你能检查一下我所做的更新并给我指出正确的方向吗?[在你提供的代码中]在右括号中缺少if语句,我使用了while-loop和mysql\u-fetch\u数组。。最初我使用mysql_fetch_row谢谢,我已经修复了:)我使用了XMLHttpRequest();并将json输入到var obj中。var obj=jQuery.parseJSON(food.responseText);我似乎无法从他们那里获得值我尝试了不同的方法我尝试了控制台日志(obj)我得到==数组[Object,Object,Object,Object,Object,Object,Object]。。。
[{"date":"2","values":[{"image":"0","sum":"1"}]},{"date":"u","values":[{"image":"p","sum":"l"}]},{"date":"6","values":[{"image":"","sum":""}]}]
$data = array();
foreach ($rows as $row) {
if (!array_key_exists($row['DATE'], $data)) {
$data[$row['DATE']] = array('date' => $row['DATE'], 'values' => array());
}
$data[$row['DATE']]['values'][] = array(
'image' => $row['LINK'],
'sum' => $row['SUM']
);
}
//this is your JSON
echo json_encode(array_values($data));
<?php include "connect.php"; ?>
<?php
$uid = $_SESSION['uid'];
$registerquery = mysql_query("select DATE(date) as dates,pic, sum(veg)+sum(fruit) as sum from diary where u_id = $uid and pic !='' group by date;");
$data = array();
while($row = mysql_fetch_array($registerquery)) {
// echo $row['dates']; echo " "; echo $row['pic']; echo " "; echo $row['sum']; echo "<br><br>";
if (!array_key_exists($row['dates'], $data)) {
$data[$row['dates']] = array('date' => $row['dates'], 'values' => array());
}
$data[$row['dates']]['values'][] = array(
'image' => $row['pic'],
'sum' => $row['sum']
);
}
echo json_encode(array_values($data));
?>