2012-07-16 176 views
0

我对json的编码字符串有问题。我正在做一个谷歌饼图。图表将充满来自数据库的数据。 Google图表需要json格式的数据。json的编码字符串

下面是一个字符串它应该是什么样子的例子。现在我有一个动态“组装”字符串与数据库中的数据的问题。 JSON_encode是不够的,它必须在格式这样的字符串与行和行! 请帮忙。

<?php 

$db=new DB(); 
$db->connect(); 
$db->selectBase(); 

$rows = array(); 
$sth=$db->st_glede_na_tip() or die(mysql_error()); 
while($r = mysql_fetch_assoc($sth)) { 
    $rows[] = $r; 
} 


$string= '{ 
    "cols": [ 
     {"id":"","label":"Content","pattern":"","type":"string"}, 
     {"id":"","label":"Slices","pattern":"","type":"number"} 
     ], 
    "rows": [ 
     {"c":[{"v":"Books"},{"v":3}]}, 
     {"c":[{"v":"Video"},{"v":1}]}, 
     {"c":[{"v":"Audio"},{"v":1}]}, 
     {"c":[{"v":"Movie"},{"v":1}]}, 
     ] 
    }'; 

    echo $string; 


?> 
+1

你可以使用json_encode()函数...? – 2012-07-16 08:12:17

+1

“json_encode”有什么问题? – poncha 2012-07-16 08:12:24

+0

谷歌图表需要独特的格式和行和行。 – 2012-07-16 08:14:36

回答

5

我猜你的问题是不知道如何从一个PHP对象这样的JS对象。 你需要创建一个PHP数组作为这样的,然后使用json_encode功能:

$data = array(
    'cols' => array(
     array('id' => '', 'label' => 'Content', 'pattern' => '', 'type' => 'string'), 
     array('id' => '', 'label' => 'Slices', 'pattern' => '', 'type' => 'number')  
    ), 
    'rows' => array(
     array('c' => array(
      array('v' => 'Books'), 
      array('v' => 3)   
     )), 
     array('c' => array(
      array('v' => 'Video'), 
      array('v' => 1)   
     )),  
     array('c' => array(
      array('v' => 'Audio'), 
      array('v' => 1)   
     )),  
     array('c' => array(
      array('v' => 'Movie'), 
      array('v' => 1)   
     ))  
    ) 
); 

echo json_encode($data); 
+0

谢谢你。但是,我将如何从数据库中获取数据到该数组中? – 2012-07-16 08:22:51

+0

我不知道你的数据库结构,所以这是一个完全不同的问题,它是你的! – darma 2012-07-16 08:24:41

+0

我的意思只是例子。 – 2012-07-16 08:25:50