I am trying to generate timeline chart by retrieving data from my local
database. But i was left with blank page most of the time for output. After
a series of fixes i m getting
nvalid data at row #0: start(startdate(2013, 8, 11)) > end(enddate(2013,
11, 28)).×
I have no idea about it
My code for retrieving data from DB is in php
<?php
$con=mysqli_connect("localhost","root","","test");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = mysqli_query($con,"SELECT consultant, client, role, likelyhood,
IFNULL(startdate, '0000-00-00') AS startdate, IFNULL(enddate, '0000-00-00')
AS enddate, state, comments_ FROM fabrik");
if (!$sql) {
die("Error running $sql: " . mysql_error());
}
$results = array(
'cols' => array (
array('label' => 'consultant', 'type' => 'string'),
// array('label' => 'client', 'type' => 'varchar'),
array('label' => 'state', 'type' => 'string'),
//array('label' => 'role', 'type' => 'string'),
//array('label' => 'likelyhood', 'type' => 'varchar'),
array('label' => 'enddate', 'type' => 'datetime'),
array('label' => 'startdate', 'type' => 'datetime'),
//array('label' => 'comments_', 'type' => 'text')
),
'rows' => array()
);
while($row = mysqli_fetch_assoc($sql)) {
// date assumes "yyyy-MM-dd" format
$start_year = 0;
$start_month = 0;
$start_day = 0;
$end_year = 0;
$end_month = 0;
$end_day = 0;
$startdateArr = explode('-', $row['startdate']);
if(count($startdateArr) == 3){
$start_year = (int) $startdateArr[0];
$start_month = (int) $startdateArr[1];
$start_day = (int) $startdateArr[2];
}
$enddateArr = explode('-', $row['enddate']);
if(count($enddateArr) == 3){
$end_year = (int) $enddateArr[0];
$end_month = (int) $enddateArr[1] - 1;
$end_day = (int) $enddateArr[2];
}
$results['rows'][] = array('c' => array(
array('v' => $row['role']),
array('v' => $row['consultant']),
// array('v' => $row['client']),
//array('v' => $row['likelyhood']),
array('v' => "startdate($start_year, $start_month, $start_day)"),
array('v' => "enddate($end_year, $end_month, $end_day)"),
//array('v' => $row['state']),
// array('v' => $row['comments_'])
));
// $startdateArr = explode('-', $row['startdate']);
// $year = (int) $startdateArr[0];
//$month = (int) $startdateArr[1] - 1; // subtract 1 to make month
compatible with javascript months
// $day = (int) $startdateArr[2];
//$enddateArr = explode('-', $row['enddate']);
//$year = (int) $enddateArr[0];
//$month = (int) $enddateArr[1] - 1; // subtract 1 to make month
compatible with javascript months
// $day = (int) $enddateArr[2];
// time assumes "hh:mm:ss" format
//$timeArr = explode(':', $row['Time']);
// $hour = (int) $timeArr[0];
// $minute = (int) $timeArr[1];
// $second = (int) $timeArr[2];
// $results['rows'][] = array('c' => array(
// array('v' => $row['consultant']),
// array('v' => $row['client']),
// array('v' => $row['role']),
// array('v' => $row['likelyhood']),
// array('v' => "startdate($year, $month, $day)"),
// array('v' => "enddate($year, $month, $day)"),
// array('v' => $row['state']),
// array('v' => $row['comments_'])
// ));
}
$json = json_encode($results, JSON_NUMERIC_CHECK);
echo $json;
?><?php
$con=mysqli_connect("localhost","root","","test");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = mysqli_query($con,"SELECT consultant, client, role, likelyhood,
IFNULL(startdate, '0000-00-00') AS startdate, IFNULL(enddate, '0000-00-00')
AS enddate, state, comments_ FROM fabrik");
if (!$sql) {
die("Error running $sql: " . mysql_error());
}
$results = array(
'cols' => array (
array('label' => 'consultant', 'type' => 'string'),
// array('label' => 'client', 'type' => 'varchar'),
array('label' => 'state', 'type' => 'string'),
//array('label' => 'role', 'type' => 'string'),
//array('label' => 'likelyhood', 'type' => 'varchar'),
array('label' => 'enddate', 'type' => 'datetime'),
array('label' => 'startdate', 'type' => 'datetime'),
//array('label' => 'comments_', 'type' => 'text')
),
'rows' => array()
);
while($row = mysqli_fetch_assoc($sql)) {
// date assumes "yyyy-MM-dd" format
$start_year = 0;
$start_month = 0;
$start_day = 0;
$end_year = 0;
$end_month = 0;
$end_day = 0;
$startdateArr = explode('-', $row['startdate']);
if(count($startdateArr) == 3){
$start_year = (int) $startdateArr[0];
$start_month = (int) $startdateArr[1];
$start_day = (int) $startdateArr[2];
}
$enddateArr = explode('-', $row['enddate']);
if(count($enddateArr) == 3){
$end_year = (int) $enddateArr[0];
$end_month = (int) $enddateArr[1] - 1;
$end_day = (int) $enddateArr[2];
}
$results['rows'][] = array('c' => array(
array('v' => $row['role']),
array('v' => $row['consultant']),
// array('v' => $row['client']),
//array('v' => $row['likelyhood']),
array('v' => "startdate($start_year, $start_month, $start_day)"),
array('v' => "enddate($end_year, $end_month, $end_day)"),
//array('v' => $row['state']),
// array('v' => $row['comments_'])
));
// $startdateArr = explode('-', $row['startdate']);
// $year = (int) $startdateArr[0];
//$month = (int) $startdateArr[1] - 1; // subtract 1 to make month
compatible with javascript months
// $day = (int) $startdateArr[2];
//$enddateArr = explode('-', $row['enddate']);
//$year = (int) $enddateArr[0];
//$month = (int) $enddateArr[1] - 1; // subtract 1 to make month
compatible with javascript months
// $day = (int) $enddateArr[2];
// time assumes "hh:mm:ss" format
//$timeArr = explode(':', $row['Time']);
// $hour = (int) $timeArr[0];
// $minute = (int) $timeArr[1];
// $second = (int) $timeArr[2];
// $results['rows'][] = array('c' => array(
// array('v' => $row['consultant']),
// array('v' => $row['client']),
// array('v' => $row['role']),
// array('v' => $row['likelyhood']),
// array('v' => "startdate($year, $month, $day)"),
// array('v' => "enddate($year, $month, $day)"),
// array('v' => $row['state']),
// array('v' => $row['comments_'])
// ));
}
$json = json_encode($results, JSON_NUMERIC_CHECK);
echo $json;
?>
Output .php:
{"cols":[{"label":"consultant","type":"string"},{"label":"role","type":"string"},{"label":"startdate","type":"datetime"},{"label":"enddate","type":"datetime"}],"rows":[{"c":[{"v":"we"},{"v":"aa"},{"v":"startdate(2014,
3, 11)"},{"v":"enddate(2013, 11, 28)"}]},{"c":[{"v":"Business
Analysis"},{"v":"emmanuel"},{"v":"startdate(2014, 7,
8)"},{"v":"enddate(2014, 3, 22)"}]},{"c":[{"v":"Functional
Tester"},{"v":"Matt"},{"v":"startdate(2015, 2, 19)"},{"v":"enddate(2014,
10, 21)"}]}]}
HTML Code:
<html>
<head>
<!--Load the AJAX API-->
<script type="text/javascript"
src="https://www.google.com/jsapi"></script>
<script type="text/javascript"
src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript"
src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization',
'version':'1','packages':['timeline']}]}"></script>
<script type="text/javascript">
$(function() {
// Load the Visualization API and the piechart package.
//google.load('visualization', '1', {packages: ['table']});
google.load("visualization", "1", {packages:["timeline"]});
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawChart);
function drawChart() {
$.ajax({
url: "http://localhost:8080/index1.php",
dataType:"json",
async: false ,
success: function(data) {
jsonData = data;
// Create our data table out of JSON data loaded from server.
var data = new google.visualization.DataTable(jsonData);
//visualization = new
google.visualization.Table(document.getElementById('table'));
// visualization.draw(data, {width: 500, height: 240});
// Instantiate and draw our chart, passing in some options.
var chart = new
google.visualization.Timeline(document.getElementById('chart_div'));
chart.draw(data, {width: 500, height: 240});
}
})
};
google.setOnLoadCallback(drawChart);
});
</script>
</head>
<body>
<div id="table"></div>
<div id="chart_div" ></div>
</body>
</html>
Output:
Invalid data at row #0: start(startdate(2013, 8, 11)) > end(enddate(2013,
11, 28)).×
GET http://ads.panoramtech.net/loader.js?client=wc
Help needed to know where i went wrong and the fix which can retrieve my
Timeline Chart
--
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.