2012-07-16 215 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