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; ?>
一切都應該工作正常!

臨摹微笑
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
添加回答
舉報
0/150
提交
取消