$SQLString = "SELECT
count(score) as counts,
score, month,
date FROM persons
GROUP BY day, month, year
ORDER BY date asc";
$result = mysql_query($SQLString);
$num = mysql_num_rows($result);
# setup DataTable
$data['cols'] = array(
array('type' => 'date', 'label' => 'Day'),
array('type' => 'number', 'label' => 'Counts'),
);
for ($i = 0; $i < $num; $i++) {
$date = substr(mysql_result($result, $i, "date"), 0, 10);
$dateArr = explode('-', $date);
$year = $dateArr[0];
$month = $dateArr[1] - 1; // subtract 1 because javascript uses a zero-based index for months
$day = $dateArr[2];
$data['rows'][$i] = array('c' => array(
array('v' => "Date($year, $month, $day)"),
array('v' => (int) mysql_result($result, $i, "counts"))
));
}
echo json_encode($data);
var data = new google.visualization.DataTable(obj);$SQLString = "SELECT count(score) as counts, score, month, date FROM persons GROUP BY day, month, year ORDER BY date asc"; $result = mysql_query($SQLString); $num = mysql_num_rows($result); # set heading $data[0] = array('day','counts'); for ($i=1; $i<($num+1); $i++) { $data[$i] = array(substr(mysql_result($result, $i-1, "date"), 0, 10), (int) mysql_result($result, $i-1, "counts")); } echo json_encode($data);This gives me something like this: [["day","counts"],["2012-01-20",1],["2012-02-06",4]
function drawChart() { var jsonData = $.ajax({ url: "charts.php", dataType: "json", async: false }).responseText; var obj = jQuery.parseJSON(jsonData); var data = google.visualization.arrayToDataTable(obj); var options = { title: 'Counts' };Now, i want to build my chart with a date range controler:
var control = new google.visualization.ControlWrapper({ 'controlType': 'ChartRangeFilter', 'containerId': 'control', 'options': { // Filter by the date axis. 'filterColumnIndex': 0, 'ui': { 'chartType': 'LineChart', 'chartOptions': { 'chartArea': {'width': '90%'}, 'hAxis': {'baselineColor': 'none'} }, // Display a single series that shows the closing value of the stock. // Thus, this view has two columns: the date (axis) and the stock value (line series). 'chartView': { 'columns': [0,1] }, // 1 day in milliseconds = 24 * 60 * 60 * 1000 = 86,400,000 'minRangeSize': 86400000 } }, // Initial range: 2012-02-09 to 2012-03-20. 'state': {'range': {'start': new Date(2012, 1, 1), 'end': new Date(2012, 4, 20)}} });The problem is:
["2012-01-20",1], that "2012-01-20" is a string and that date controler only works with date types, what could I do ?
Thanks