2012-04-30 9 views
7

私はダイナミックデータ(データベースから取得した値)でハイチャートを扱っています。私はテーブルから以下のデータを取得することができたクエリを書き込むことにより 私は次のような構造で上記の情報を保存し、json_encodeの使い方

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

は私がしたい別のページにそれを渡したい

Item 2011 2012 
pen  5  7 
pencil 4  20 
eraser 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エンコードに結果を入れている を更新しました

    配列