【问题标题】:postgreSQL to googlechartspostgreSQL 到 googlecharts
【发布时间】:2012-06-23 16:17:24
【问题描述】:

我使用 PHP 从 postgreSQL 中提取数据,我将使用它来构建 GoogleChart 数据表。 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 所期望的适当格式?

【问题讨论】:

    标签: php postgresql google-visualization


    【解决方案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"]]
    

    【讨论】:

    • 感谢 Hakre 抽出宝贵时间解决我的问题。我会很高兴将数组作为 JSON 字符串传递给 GoogleCharts!但是,据我了解,GoogleChart 不支持 Json 输入。请参阅上一篇文章的答案:link - 这就是我编写所有代码的原因!还是我误解了什么?
    • 好吧,请分享您的理解的具体和技术基础。如果你能添加,我会很高兴
    • 谢谢你,Hakre,如果你认为我无礼,我很抱歉——我不是故意的。我的技术理解(这是有限的,因为我是一名分子生物学家,而且我只是肤浅地涉足数据库)基于此处发布的答案:stackoverflow.com/questions/10869870/…
    • 哎呀,我没有看到你的编辑。现在这对我来说更有意义!非常感谢。
    • @aag:这并不意味着我是对的。如果这仍然不起作用,请在可见的地方添加代码片段,以便将数据传递到谷歌图表,以便清楚接下来会发生什么。但我真的认为这是 json,因为这很常见。祝你生物学好运,创造一些很酷的新物种。
    猜你喜欢
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    相关资源
    最近更新 更多