1
C3.js
を使用して棒グラフを作成しようとしていますが、データはPHP経由でmySQL database
にプルされ、JS as JSON
に返されました。私はできませんよ、C3、D3ネストされたJSONデータのグラフ
{
"BRACELET": {
"category": "BRACELET",
"total_purchased": 26
},
"SALESMAT": {
"category": "SALESMAT",
"total_purchased": 4
},
"TOPPING": {
"category": "TOPPING",
"total_purchased": 48
}
}
しかし: PHPコードは、ソートされた列を検索し、{category:name, total_purchased:value}
$category_data_sql = "SELECT `category`, `total_purchased` FROM `item` ORDER BY `category`";
$category_data_result = $mysqli->query($category_data_sql);
$data = array();
$key = 0;
foreach ($category_data_result as $item) {
$key = $item['category'];
if (!array_key_exists($key, $data)) {
$data[$key] = array(
'category' => $item['category'],
'total_purchased' => $item['total_purchased'],
);
} else {
$data[$key]['total_purchased'] = $data[$key]['total_purchased'] + $item['total_purchased'];
}
$key++;
}
print_r(json_encode($data));
結果のJSON出力の配列で終わるために一緒に、関連する列のすべてを追加していますこのデータをグラフに表示します。 以下のコードは正常に動作し、すべてが期待通りに表示されます。
var json_data = (<?php echo json_encode($data); ?>);
var chart = c3.generate({
bindto: '#chart',
data: {
x: 'category',
json: [
{
"category": "BRACELET",
"total_purchased": 26
},
{
"category": "SALESMAT",
"total_purchased": 4
},
{
"category": "TOPPING",
"total_purchased": 48
},
{
"category": "NECKLACE",
"total_purchased": 29
}
],
type: 'bar',
keys: {
x: 'category',
value: [ "total_purchased" ]
}
},
axis: {
x: {
type: "category"
}
},
bar: {
space: 0.25
}
});
しかし、私は変数json_data
を使用するか、私は手動で結果のJSONデータにコピーした場合、私は、コンソールでエラーなしで空白のテーブルを得れば。 ご協力いただければ幸いです。 事前に感謝、コリン。