postgreSQL到googlecharts

时间:2012-06-23 16:17:25

标签: php postgresql google-visualization

我使用PHP从postgreSQL中提取数据,我将使用它来构建GoogleChart dataTables。 GoogleCharts接受数组数组(格式:[[data1,data2,data3],[data4,data5,data6]]。

为了正确格式化数组,我使用以下语法:

$GoogleChartString ="["; //opening bracket inserted
while ($row = pg_fetch_row($QueryResult)) 
{
$GoogleChartString = $GoogleChartString . "[" .implode(",", $row) . "],"; 
}
$GoogleChartString = substr($GoogleChartString,0,-1)."]";

现在,有些字段是字符串,有些是数字。 GoogleCharts DataTables希望字符串是单引号。但是,pg_fetch_row不会在字符串周围放置任何分隔符。我怎样才能以优雅高效的方式生成GoogleCharts所期望的适当格式?

1 个答案:

答案 0 :(得分:1)

一个好消息和一个坏消息。

坏消息:到目前为止,您确实编写了太多代码,您实际上浪费了字符,可能您自己的代码仍然存在,因此您无法解决此问题。

好消息:在PHP中构建一个数组,然后使用json_encode函数,您无需关心格式化。这是Json

$googleChart = array();
while ($row = pg_fetch_row($QueryResult)) {
    $googleChart[] = $row;
}
$googleChartString = json_encode($googleChart);

每当您处理某些API时,请查找规范(例如Json)。然后在PHP手册中查看该规范的支持方式。通常是开箱即用的,否则你也可以使用很多库。

修改

代码片段(Demo):

$data = array(array(data1, data2, data3),array(data4, data5, data6));

echo json_encode($data);

输出:

[["data1","data2","data3"],["data4","data5","data6"]]