2015-07-09 36 views
-1

這是MySQL查詢的結果如何讓php代碼生成這個json?

` 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:
這是我的代碼:

<?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(); 
foreach (mysql_fetch_row($registerquery) as $row) { 
    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']  
); 
} 

//this is your JSON 
echo json_encode(array_values($data)); 

?> 

但我似乎只得到第一個字符。

[{"date":"2","values":[{"image":"0","sum":"1"}]},{"date":"u","values":[{"image":"p","sum":"l"}]},{"date":"6","values":[{"image":"","sum":""}]}] 
+0

你編碼的東西了嗎?你會得到更多的問題答案,要求修正代碼,而不是要求某人編寫整個代碼。 – jay

+0

我試了代碼..我有幾個錯誤...我triyng檢查是否是我做錯了給我5分 – KMC

回答

3

假設$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)); 
+0

謝謝你的回答@jedrzej。我試過了。但我認爲我做錯了什麼。你可以請檢查我所做的更新,並指出我在正確的方向 – KMC

0
<?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)); 



?> 
+0

終於得到它的工作....再次感謝@jedrzej – KMC

+0

是什麼問題?我想更新答案 –

+0

如果語句錯過了一個右括號[在你提供的代碼中],我用while循環和mysql_fetch_array .. initianlly我用mysql_fetch_row – KMC