为了账号安全,请及时绑定邮箱和手机立即绑定

PHP MySQL谷歌图表JSON - 完整示例

PHP MySQL谷歌图表JSON - 完整示例

猛跑小猪 2019-08-14 17:04:26
PHP MySQL谷歌图表JSON - 完整示例我已经搜索了很多,以找到一个使用MySQL表数据作为数据源生成Google Chart的好例子。我搜索了几天,并意识到使用PHP和MySQL的组合生成Google Chart(饼图,条形图,列,表)的示例很少。我终于设法让一个例子起作用了。我之前收到过StackOverflow的很多帮助,所以这次我会回复一些。我有两个例子; 一个使用Ajax而另一个不使用。今天,我只展示非Ajax示例。用法:    要求:PHP,Apache和MySQL    安装:      ---使用phpMyAdmin创建数据库并将其命名为“chart”      ---使用phpMyAdmin创建一个表,并将其命名为“googlechart”并制作           确保表只有两列,因为我使用了两列。然而,          如果你愿意,你可以使用超过2列,但你必须改变           为此编写一点代码      ---指定列名如下:“weekly_task”和“percentage”      ---将一些数据插入表中      ---对于百分比列,只使用一个数字          ---------------------------------          示例数据:表(googlechart)          ---------------------------------          weekly_task百分比          ----------- ----------          睡30          看电影10          工作40          练习20    PHP-MySQL-JSON-Google图表示例:    <?php $con=mysql_connect("localhost","Username","Password") or die("Failed to connect with database!!!!");mysql_select_db("Database Name", $con); // The Chart table contains two fields: weekly_task and percentage// This example will display a pie chart. If you need other charts such as a Bar chart, you will need to modify the code a little to make it work with bar chart and other charts$sth = mysql_query("SELECT * FROM chart");/* --------------------------- example data: Table (Chart) -------------------------- weekly_task     percentage Sleep           30 Watching Movie  40 work            44 *///flag is not needed$flag = true;$table = array();$table['cols'] = array(     // Labels for your chart, these represent the column titles     // Note that one column is in "string" format and another one is in "number" format as pie chart only required "numbers" for calculating percentage and string will be used for column title     array('label' => 'Weekly Task', 'type' => 'string'),     array('label' => 'Percentage', 'type' => 'number'));$rows = array();while($r = mysql_fetch_assoc($sth)) {     $temp = array();     // the following line will be used to slice the Pie chart     $temp[] = array('v' => (string) $r['Weekly_task']);
查看完整描述

3 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

有些人可能在本地或服务器上遇到此错误:

syntax error var data = new google.visualization.DataTable(<?=$jsonTable?>);

这意味着他们的环境不支持短标签解决方案是使用它:

<?php echo $jsonTable; ?>

一切都应该工作正常!


查看完整回答
反对 回复 2019-08-14
?
临摹微笑

TA贡献1982条经验 获得超2个赞

你可以更轻松地做到这一点。100%的工作你想要的

<?php
    $servername = "localhost";
    $username = "root";
    $password = "";  //your database password
    $dbname = "demo";  //your database name

    $con = new mysqli($servername, $username, $password, $dbname);

    if ($con->connect_error) {
        die("Connection failed: " . $con->connect_error);
    }
    else
    {
        //echo ("Connect Successfully");
    }
    $query = "SELECT Date_time, Tempout FROM alarm_value"; // select column
    $aresult = $con->query($query);?><!DOCTYPE html><html><head>
    <title>Massive Electronics</title>
    <script type="text/javascript" src="loder.js"></script>
    <script type="text/javascript">
        google.charts.load('current', {'packages':['corechart']});

        google.charts.setOnLoadCallback(drawChart);
        function drawChart(){
            var data = new google.visualization.DataTable();
            var data = google.visualization.arrayToDataTable([
                ['Date_time','Tempout'],
                <?php                    while($row = mysqli_fetch_assoc($aresult)){
                        echo "['".$row["Date_time"]."', ".$row["Tempout"]."],";
                    }
                ?>
               ]);

            var options = {
                title: 'Date_time Vs Room Out Temp',
                curveType: 'function',
                legend: { position: 'bottom' }
            };

            var chart = new google.visualization.AreaChart(document.getElementById('areachart'));
            chart.draw(data, options);
        }

    </script></head><body>
     <div id="areachart" style="width: 900px; height: 400px"></div></body></html>

loder.js链接到这里loder.js


查看完整回答
反对 回复 2019-08-14
  • 3 回答
  • 0 关注
  • 471 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信