I have a mySQL table that I've been populating with 3 columns every 5 
minutes:  DateTime, Temperature, Humidity.  I can view the data in the 
table and I can see that it's being recorded properly.  But now I'd like to 
graph it with an annotated line chart, mainly so I can use the zoom buttons 
to select different time periods for the x axis.  I used the example html 
code from the annotated line chart example on the visualization playground 
<https://code.google.com/apis/ajax/playground/?type=visualization>,  which 
works fine on my server with the sample data, but when I add a php script 
to get my data from the mySQL table and add it to the data table for the 
Google chart, I get the following error :  

Uncaught Error: Type mismatch. Value 2014-02-07 22:37:03 does not match 
type datetime in column index 0 

Here is the section of my php code when viewed from the browser page source 
that shows the data it grabbed from the mySQL table:

data.addColumn('datetime', 'Date');
data.addColumn('number', 'Temp');
data.addColumn('number', 'Humid');
data.addRows([
['2014-02-07 22:37:03',6.0,19.6],['2014-02-07 
22:42:03',5.5,21.4],['2014-02-07 22:47:03',5.6,20.2],.........


I'm guessing I just don't have the date and time part formatted correctly 
and that's why it's not working, but I haven't found any examples of people 
who successfully graphed data from a mySQL table when that column is 
specified as a "datetime" and not just a "string".

Here's the entire code I wrote that grabs the data and attempts to graph it 
with the annotated line chart.

<script type='text/javascript' src='http://www.google.com/jsapi'></script>
    <script type='text/javascript'>
      google.load('visualization', '1.1', {'packages':['annotationchart']});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
      var data = new google.visualization.DataTable();
      data.addColumn('datetime', 'Date');
      data.addColumn('number', 'Temperature');
      data.addColumn('number', 'Humidity');

data.addRows([
<?php

$db="my_dbname";
$link = mysql_connect('localhost', 'db_username', 'password');

mysql_query('SET NAMES utf8');
mysql_select_db($db , $link) or die("Couldn't open $db: ".mysql_error());

$result = mysql_query("SELECT Date, Temp, Humid FROM datatable Order By 
Date");
if ($result !== false) {
$num=mysql_numrows($result);
$i=0;
echo"";

while ($i < $num) {

$Date=mysql_result($result,$i,"Date");
$Temp=mysql_result($result,$i,"Temp");
//$CTDtemp=mysql_result($result,$i,"CTDtemp");
$Humid=mysql_result($result,$i,"Humid");

echo "['";
echo "$Date";
echo "',";
echo "$Temp";
echo ",";
echo "$Humid";
echo "]";
if ($i < ($num - 1))
{
echo ",";
}
$i++;

}
}

?>
]);

        var chart = new 
google.visualization.AnnotationChart(document.getElementById('chart_div'));

        var options = {
          displayAnnotations: false,
        };

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

  <body>
  
  Graph should be here.
  
    <div id='chart_div' style='width: 900px; height: 500px;'></div>
    
  </body>
</html>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-visualization-api.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to