所以,我想创建动态圆环图,数据来自mySql数据库。但是,问题在于该图表,数据来自JSON。
我的问题是,如何使用PHP中的数据用于JSON数据。这是我到目前为止的进展:
<?php
$query_A = "SELECT COUNT(category) as catg FROM mydata ORDER BY category";
$result_A = mysql_query($query_A);
$query_B = "SELECT COUNT(category) as catg FROM mydata ORDER BY category";
$result_B = mysql_query($query_B);
//Print JSON
$prefix = '';
"[\n";
while ( $row_A = mysql_fetch_assoc( $result_A ) ) {
$prefix . " {<br>";
' "category": "' . "A" . '",' . "<br>";
' "value": ' . $row_A['catg'] . ',' . "<br>";
" }";
$prefix = ",\n";
}
while ( $row_B = mysql_fetch_assoc( $result_B ) ) {
$prefix . " {<br>";
' "category": "' . "B" . '",' . "<br>";
' "value": ' . $row_B['catg'] . ',' . "<br>";
" }";
$prefix = ",\n";
}
"\n]";
?>
这是来自该圆环图的JSON数据:
<script type="text/javascript">
var chart = AmCharts.makeChart( "chartdiv", {
"type": "pie",
"theme": "light",
"dataProvider": [ {
"title": "New",
"value": 200
}, {
"title": "Returning",
"value": 9899
}, {
"title": "Back",
"value": 900
} ],
"titleField": "title",
"valueField": "value",
"labelRadius": 10,
"radius": "42%",
"innerRadius": "60%",
"labelText": "[[title]]",
"export": {
"enabled": true
}
} );
</script>
我想将myql数据用于该JSON数据。谢谢
答案 0 :(得分:1)
有一个名为json_encode
的便捷功能。只需通过此功能运行您的数据。
$json = json_encode($data); // returns a JSON string
顺便说一句,你是否尝试使用Google搜索&#34; PHP创建JSON&#34;或类似的东西?你写这个问题的时间已经找到了解决方案。更不用说你浪费时间尝试自己创建JSON了。
只是说,你可以通过询问搜索引擎来节省大量时间......你通常不是第一个遇到特殊问题的人。
答案 1 :(得分:0)
我无法理解为什么有两个相同的查询,但是说。
<?php
$query_A = "SELECT COUNT(`category`) as 'catg' FROM `mydata` ORDER BY `category`";
$result_A = mysql_query( $query_A );
$query_B = "SELECT COUNT(`category`) as 'catg' FROM `mydata` ORDER BY `category`";
$result_B = mysql_query( $query_B );
if( $result_A ){
$data=array();
while ( $row_A = mysql_fetch_assoc( $result_A ) ) {
$data[]=array('category'=>'A', 'value'=>$row_A['catg'] );
}
$json_A=json_encode( $data );
}
if( $result_B ){
$data=array();
while ( $row_B = mysql_fetch_assoc( $result_B ) ) {
$data[]=array('category'=>'B', 'value'=>$row_B['catg'] );
}
$json_B=json_encode( $data );
}
?>
然后,在你的javascript中你可以这样做: -
var json_a=<?php echo $json_A;?>;
var json_b=<?php echo $json_B;?>;