表格没有使用Google图表的列 [英] Table has no columns using google charts
问题描述
我浏览了许多帖子,并尝试了他们的建议.但是,每次都会出现一个新问题.
I have looked through many posts and tried their suggestions. A new problem arises each time though.
目标:创建一个Google折线图,以从MYSQL表中获取数据并将其编码为JSON.从那里,我尝试使用html文件显示图表.
Objective: To create a Google line chart taking data from MYSQL table and encoding it in JSON. From there, I attempt to use an html file to display the chart.
someFile.php:
someFile.php:
<?php
//connect to the database
$username = ...;
$password = ...;
$hostname = ...;
$database = ...;
$conn = mysqli_connect($hostname, $username)
or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";
//Select database
$db_found = mysqli_select_db($conn,$database);
if($db_found) {
print "Database Found<br><br>";
}
else{
print "Database NOT Found<br>";
}
$sql = mysqli_query($conn, 'SELECT * FROM Travel_Test');
if (!$sql) {
die("Error running $sql: " . mysql_error());
}
$results = array(
'cols' => array (
array('label' => 'travel_time_date', 'type' => 'datetime'),
array('label' => 'travel_time_duration', 'type' => 'number')
),
'rows' => array()
);
while($row = mysqli_fetch_assoc($sql))
{
//date assumes "yyyy - mm -- dd" format
$dateArr = explode('-', $row['travel_time_date']);
$year = (int) $dateArr[0];
$month = (int) $dateArr[1]; //subtract 1 to make compatible with javascript months
$day = (int) $dateArr[2];
//time assumes "hh:mm:ss" format
$timeArr = explode(':', $row['travel_time_timestamp']);
$hour = (int) $timeArr[0];
$minute = (int) $timeArr[1];
$second = (int) $timeArr[2];
$results['rows'][] = array('c' => array(
array('v' => "travel_time_date($year, $month, $day, $hour, $minute, $second)"),
array('v' => $row['travel_time_duration'])
));
}
$json = json_encode($results, JSON_NUMERIC_CHECK );
echo $json;
//header("Access-Control-Allow-Origin: *");
?>
JSON输出:
{"cols":[{"label":"travel_time_date","type":"datetime"},
{"label":"travel_time_duration","type":"number"}],
"rows":[{"c":
[{"v":"travel_time_date(2014, 2, 1, 1, 30, 30)"},{"v":55}]},{"c":
[{"v":"travel_time_date(2014, 2, 1, 2, 30, 30)"},{"v":80}]},{"c":
[{"v":"travel_time_date(2014, 2, 1, 3, 30, 30)"},{"v":60}]},{"c":
[{"v":"travel_time_date(2014, 2, 1, 4, 30, 30)"},{"v":120}]}]}
anotherFile.html:
anotherFile.html:
<html>
<head>
<!--Load the AJAX API-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
google.load('visualization', '1', {'packages':['corechart']});
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawChart);
function drawChart() {
var jsonData = $.ajax({
url: "http:///Volumes/OS%20X%20Mountain%20Lion/Applications/XAMPP/xamppfiles/htdocs/traveltrak/travelGraphData.php",
dataType:"json",
async: false
}).responseText;
//success: function (jsonData) {
//Create data table out of JSON data loaded from server
var data = new google.visualization.DataTable(jsonData);
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, {width: 400, height: 240});
//}
//});
}
</script>
</head>
<body>
<div id="chart_div"></div>
</body>
</html>
当我尝试预览页面时,我检查了开发人员的控制台.它没有任何问题.错误是在页面上显示:表没有列.请问这里有什么建议吗?
When I tried to preview the page, I checked the developer's console. It states no issues. The error is when the page says: Table has no columns. Any suggestions from here please?
推荐答案
您的日期输入不正确;格式为'Date(year, month, day, hours, minutes, seconds)'
.您需要将"travel_time_date"替换为"Date":
Your dates are not input correctly; the format is 'Date(year, month, day, hours, minutes, seconds)'
. You need to replace "travel_time_date" with "Date":
$results['rows'][] = array('c' => array(
array('v' => "Date($year, $month, $day, $hour, $minute, $second)"),
array('v' => $row['travel_time_duration'])
));
这篇关于表格没有使用Google图表的列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!