I am writing a php/JS script to populate a google charts graph from a MySQL 
database. The structure of the database is unfortunate but it is not mine 
and I am stuck with it. The chart I am having problems with is a "Year to 
Date" representation of financial information. It renders a bar chart of 
year to date revenue from Jan through December for actual, budget and 
previous year. Each month is an accumulation of the year. So the Jan figure 
is just Jan, the Feb figure is Jan plus Feb, the Mar figure is Jan plus Feb 
plus Mar and so on. Given the table structure I am working with, the query 
becomes very long by the time it gets to December. It works fine up to Aug 
and then when I add the Sep query it stops working and I get a "uncaught 
object" error in the javascript and the google chart does not work. Here 
are the Jan and Feb months of the query. The query just keeps getting 
longer as I add the subsequent months to it but for brevity I have just 
shown the first two months:

$STH = $DBH->prepare("SELECT
'Jan',SUM(two_o_one_four.jan_actual*-1), 
SUM(two_o_one_four.jan_budget)*-1,SUM(two_o_one_three.jan_actual)*-1, 
'Feb',SUM(two_o_one_four.jan_actual*-1+two_o_one_four.feb_actual*-1), 
SUM(two_o_one_four.jan_budget*-1+two_o_one_four.feb_budget*-1),SUM(two_o_one_three.jan_actual*-1+two_o_one_three.feb_actual*-1),
 
etc. etc

I fetch the query as an associative array and then write it to an array in 
the form required by google charts. Here is that code for Jan and Feb - 
once again for brevity I am just showing the first two months:

$rows = array(); 
while ($nt = $STH->fetch()) {
    $temp = array(); $temp[] = array('v' => $nt["Jan"], 'f' =>NULL); 
    $temp[] = array('v' => $nt['SUM(two_o_one_four.jan_actual*-1)'], 'f' =>
NULL);
    $temp[] = array('v' => $nt['SUM(two_o_one_four.jan_budget)*-1'], 'f' =>
NULL); 
    $temp[] = array('v' => $nt['SUM(two_o_one_three.jan_actual)*-1'], 'f' =>
NULL); 
    $rows[] = array('c' => $temp); $temp = array(); $temp[] = array('v' => 
$nt["Feb"], 'f' =>NULL);
    $temp[] = array('v' => $nt[
'SUM(two_o_one_four.jan_actual*-1+two_o_one_four.feb_actual*-1)'], 'f' =>
NULL); 
    $temp[] = array('v' => $nt[
'SUM(two_o_one_four.jan_budget*-1+two_o_one_four.feb_budget*-1)'], 'f' =>
NULL);
    $temp[] = array('v' => $nt[
'SUM(two_o_one_three.jan_actual*-1+two_o_one_three.feb_actual*-1)'], 'f' =>
NULL); 
    $rows[] = array('c' => $temp); etc. etc.

I then call json_encode on the array and send it to google charts. 

It all works well for an eight month query but as soon as I add another 
month to it I get an uncaught object error. I have increased memory 
allocation in PHP to no avail. The MySQL query runs fine on MySQL 
workbench. I am pretty sure there are no syntax or logic errors as the code 
works fine up to August so am left thinking there must be some kind of 
limit to the length of these things.  However I have spent hours searching 
but have turned up nothing. Is there a limit I am running into?

 Regards Alistair 

-- 
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/d/optout.

Reply via email to