A tabela não tem colunas usando o google charts

Eu examinei várias postagens e tentei suas sugestões. No entanto, surge um novo problema.

Objetivo: criar um gráfico de linha do Google, levando dados da tabela MYSQL e codificando-o no JSON. A partir daí, eu tento usar um arquivo html para exibir o gráfico.

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
"; //Select database $db_found = mysqli_select_db($conn,$database); if($db_found) { print "Database Found

"; } else{ print "Database NOT Found
"; } $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: *"); ?>

Saída 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}]}]} 

outroFile.html:

       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}); //} //}); }    

Quando tentei visualizar a página, chequei o console do desenvolvedor. Não afirma problemas. O erro é quando a página diz: A tabela não tem colunas. Alguma sugestão daqui, por favor?

Suas datas não são inseridas corretamente; O formato é 'Date(year, month, day, hours, minutes, seconds)' . Você precisa replace “travel_time_date” por “Data”:

 $results['rows'][] = array('c' => array( array('v' => "Date($year, $month, $day, $hour, $minute, $second)"), array('v' => $row['travel_time_duration']) ));