2012-04-30 47 views
7

我正在處理與動態數據(從數據庫檢索值)highcharts。 通過編寫一個查詢我能夠從表中檢索以下數據如何使用json_encode

Item 2011 2012 
pen  5  7 
pencil 4  20 
eraser 6  43 

我想存儲在以下結構上述信息,並把它傳遞到另一個頁面

[{ name:'pen', data: [5,7]},{ name:'pencil', data: [4,20]},{ name:'eraser', data: [6,43]}]"; 

我想將上述數據推送到深入的高圖。

有沒有一種方法可以用這種格式生成?我試過使用json_encode但無法成功。 我可以用json_encode來實現嗎?

更新 我試圖以這種方式

while($row = mysql_fetch_assoc($result)) 
    { 
    $rows[]= $row; 

    } 
echo json_encode($rows); 

,並得到

[{"Item":"pen","2011":"5","2012":"7"},{"Item":"pencil","2011":"4","2012":"20"},{"Item":"eraser","2011":"6","2012":"43"}] 
+2

'json_encode'編碼JSON,不Javascript對象表達式(不帶引號的鍵)您在那裏。不過這並不重要。 – mario

+2

看起來更好的方法是序列化數據。 – nickb

+1

@JohnConde我已經更新了一些info.check出 – Anil

回答

17

json_encode是一種將數組轉換爲JSON格式的便捷方法。要獲得您提供的輸出,您需要一個數組數組。每個子陣列具有鍵「姓名」和「數據」,其中「名」是項目列,和「數據」是含有從值2011和另一陣列2012

$results = mysql_query("..."); 
$arr = array(); 

while ($row = mysql_fetch_assoc($results)) 
{ 
    $name = $row['Item']; 
    $data = array($row['2011'], $row['2012']); 

    $arr[] = array('name' => $name, 'data' => $data); 
} 

echo json_encode($arr); 
3
  1. 遍歷數據庫的結果,並把結果在一個數組
  2. JSON編碼陣列