将数据从PHP获取到JSON

时间:2015-08-17 10:17:32

标签: php mysql json

所以,我想创建动态圆环图,数据来自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数据。谢谢

2 个答案:

答案 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;?>;