SELECT从mysql到Google Geo Chart的计数

时间:2015-08-17 20:03:24

标签: javascript php mysql charts google-visualization

我一直在尝试使用SELECT Count从mysql数据库中检索数据,因为我得到了一个国家列表,我想要计算每个国家/地区在SovereignState列中显示的次数,Google Geo Chart并浏览,我相信json_encode应该做到这一点。

但是,我不知道如何从我的php代码中创建一个json_encode,然后将其放在图表的DataTable中。

这是php代码:

define('DB_NAME', '');
    define('DB_USER', '');
    define('DB_PASSWORD','');
    define('DB_HOST', '');

$conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) ;

    if ($conn->connect_error) {
        die ('Could not connect: ' . $conn->connect_error);
    }

    $sql = "SELECT SovereignState, COUNT(*) FROM Data_2 GROUP BY SovereignState";
    echo $sql;
    //$result = $conn->query($sql);
    $result = $conn->multi_query($sql);

    if(!$result) {
        echo "Could not successdully run query ($sql) from DB: " . mysql_error(); exit;
    }
    echo "<pre>";
    do {
        if ($result = $conn->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s - %s\n", $row[0], $row[1]);
            }
            $result->free();
        }           
    } while ($conn->more_results());
    echo "</pre>";

    $conn->close();

这是google geochart的HTML代码:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
    google.load("visualization", "1", {packages:["geochart"]});
    google.setOnLoadCallback(drawRegionsMap);

        function drawRegionsMap() {

            var data = google.visualization.arrayToDataTable([
              ['Country', 'Number'],
                   ]);

            var options = {};
            var chart = new google.visualization.GeoChart(document.getElementById('regions_div'));

            chart.draw(data, options);
        }
</script>

1 个答案:

答案 0 :(得分:0)

您可以使用PHP代码中的json_encode()并使用Ajax将JSON转换为JS代码。

此外,(不推荐)您可以使用<?php myFunction();?>从JS代码调用PHP函数,该函数应返回echo json_encode()