以数据表格式显示json

时间:2013-12-17 23:04:52

标签: php mysql json graph

我想从我的数据库中的某些数据创建Google图表,现在我有了这段代码:

<?php
$q = mysql_connect('localhost', 'xxx', 'xxx');
mysql_select_db('xxx', $q);
?>
<?php
$sth = mysql_query("SELECT inkoop, verkoop FROM prijs WHERE inkoop >= 1 ");
$rows = array();
while($r = mysql_fetch_assoc($sth)) {
    $rows[] = $r;
}
print json_encode($rows);
?>
<?php
$sth = mysql_query("SELECT tijd FROM prijs WHERE inkoop >= 1");
$cols = array();
while($c = mysql_fetch_assoc($sth)) {
    $cols[] = $c;
}
print json_encode($cols);
?>

它给了我这个输出:

[{"inkoop":"516","verkoop":"484"},{"inkoop":"515","verkoop":"488"},{"inkoop":"515","verkoop":"487"}][{"tijd":"2013-12-17 23:45:00"},{"tijd":"2013-12-17 23:48:00"},{"tijd":"2013-12-17 23:52:00"}]

我需要的是这样的东西,以创建折线图:

{
  "cols": [
        {"id":"","label":"Topping","pattern":"","type":"string"},
        {"id":"","label":"Slices","pattern":"","type":"number"}
      ],
  "rows": [
        {"c":[{"v":"Mushrooms","f":null},{"v":3,"f":null}]},
        {"c":[{"v":"Onions","f":null},{"v":1,"f":null}]},
        {"c":[{"v":"Olives","f":null},{"v":1,"f":null}]},
        {"c":[{"v":"Zucchini","f":null},{"v":1,"f":null}]},
        {"c":[{"v":"Pepperoni","f":null},{"v":2,"f":null}]}
      ]
}

编辑:我需要一个线条图,其中2行代表'inkoop',1代表'verkoop',如果我可以使用这样的代码:http://www.highcharts.com/stock/demo/它会更好。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解你的问题,但听起来你已经有了这个对象,你只需要将它们格式化得更好一点,这样你就可以将它们放入你的图表软件中了吗?

如果这就是你想要的,我想你已经走上正轨了。我将在脚本的开头创建一个新对象:

$json = new stdClass();    

然后在设置$rows$cols数组时,将它们分配给对象:

$json->rows = $rows;
...
$json->cols = $cols;

当你json_encode($json);它应该看起来像你的例子。

如果您需要在理想的表单中对SQL中的数据进行额外的操作,那么通过创建对象并向其添加属性,它们都应该可行。

我希望这有帮助!