2013-12-17 99 views
1

我想创建从我的数据库中的一些数据的谷歌图表,现在我有这样的代码:显示在数据表格式JSON

<?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}]} 
     ] 
} 

编辑:我需要的线图两行一个关于“inkoop”和一个FO r'verkoop',如果我可以使用这样的东西:http://www.highcharts.com/stock/demo/它会更好。

提前致谢!

+0

可能的重复[漂亮打印JSON与PHP](http://stackoverflow.com/questions/6054033/pretty-printing-json-with-php) –

+0

感谢您的回应,但我需要行和列,这只会打印更漂亮.. – Mwisho

回答

0

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

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

$json = new stdClass();  

,然后为你让你的$rows$cols阵列设置,将它们分配给对象:

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

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

如果您需要对SQL中的数据进行额外的操作,然后才能以理想的形式进行操作,则应该通过创建对象并向它们添加属性来完成所有操作。

我希望这有助于!