Is the json string being echo'd properly? Take a look at the rendered HTML to see (open page, right-click, select "view source" or something similar, depending on your browser). If it shows up, post the output HTML here. If it doesn't show up, post your PHP script here.
On Wednesday, July 11, 2012 7:31:26 PM UTC-4, Adam Hardarson wrote: > > Nice work! > > I am however still getting the Table has no columns.× > > I copied the code from a google example but there is still something > wrong! > > This is what the script looks like: > <script type="text/javascript" src="https://www.google.com/jsapi > "></script> > <script type="text/javascript"> > google.load("visualization", "1", {packages:["corechart"]}); > google.setOnLoadCallback(drawChart); > function drawChart() { > var data = new google.visualization.DataTable(<?php echo > $dataTable; ?>); > > var options = { > title: 'MP' > }; > > var chart = new > google.visualization.AreaChart(document.getElementById('chart_div')); > chart.draw(data, options); > } > </script> > </head> > > take care > Adam > > Den onsdagen den 11:e juli 2012 kl. 22:41:05 UTC+2 skrev asgallant: >> >> I changed it up a bit to fit whatever column structure you like: >> >> $sqlCols = array( >> 'Matning', >> 'Top', >> 'In', >> 'Pre', >> 'Int' >> ); >> $result124 = mysql_query(" >> SELECT Matningsnamn AS Matning, >> Top, >> In, >> Pre, >> Int >> FROM myDB WHERE Id ='$first' OR Id ='$second'" >> ); >> $rawRows = array(); >> $cols = array(); >> // set up domain column >> $cols[] = array( >> 'type' => 'string', >> 'label' => 'Foo (rename as you like)' >> ); >> while($r = mysql_fetch_assoc($result124)) { >> $cols[] = array( >> 'type' => 'string', >> 'label' => $r[$sqlCols[0]] >> ); >> $rawRows[] = $r; >> } >> >> $outRows = array(); >> for ($i = 1; $i < count($rawRows[0]); $i++) { >> $temp = array(); >> $temp[0] = array('v' => $sqlCols[$i]); >> for ($j = 0; j < count($rawRows); j++) { >> if ($rawRows[$j]['Matning'] == $cols[1]['label']) { >> $temp[1] = array('v' => $rawRows[$j][$sqlCols[$i]]); >> } >> else if ($rawRows[$j]['Matning'] == $cols[2]['label']) { >> $temp[2] = array('v' => $rawRows[$j][$sqlCols[$i]]); >> } >> } >> $outRows[] = array('c' => $temp); >> } >> >> $dataTable = json_encode(array( >> 'cols' => $cols, >> 'rows' => $outRows >> )); >> >> //.... then in the javascript, use: >> >> var data = new google.visualization.DataTable(<?php echo $dataTable; ?>); >> >> >> Make sure you are using a DataTable constructor and not the >> arrayToDataTable method. I tried out the JSON string you posted and it >> works fine for me. >> >> On Wednesday, July 11, 2012 3:23:00 PM UTC-4, Adam Hardarson wrote: >>> >>> That solved that problem but now i get Table has no columns.× >>> if I print the json I get: >>> >>> {"cols":[{"type":"string","label":"Value >>> #"},{"type":"string","label":"Test 1"},{"type":"string","label":"Test 2"}], >>> >>> "rows":[{"c":[{"v":"Value1"},{"v":"61"},{"v":"66"}]},{"c":[{"v":"Value2"},{"v":"90"},{"v":"83"}]},{"c":[{"v":"Value3"},{"v":"37"},{"v":"71"}]},{"c":[{"v":"Value4"},{"v":"48"},{"v":"84"}]}]} >>> >>> >>> For this to work I changed my original code like this: >>> >>> $result124 = mysql_query(" >>> SELECT Matningsnamn AS Matning, >>> Top AS Value1, >>> In AS Value2 , >>> Pre AS Value3 , >>> Int ASValue4 >>> FROM myDB WHERE Id ='$first' OR Id ='$second'" >>> >>> So I realize that I wrote that the "columnnames" were Value1, Value2, >>> Value3 and Value 4 but this was just to illustrate. The column names is >>> totally different from that, will that screw the code up or is it easy to >>> edit to display the real names? Or even better is it possible to enter the >>> labels manually and just getting the values from the database? So that >>> when I choose a new row from the dropdown only the values changes? >>> >>> Sorry for confusing everything!!!! >>> >>> Adam >>> >>> Den onsdagen den 11:e juli 2012 kl. 20:30:18 UTC+2 skrev asgallant: >>>> >>>> I forgot the $'s in front of the i's there, try this: >>>> >>>> for ($i = 1; $i < count($rawRows[0]); $i++) { >>>> >>>> On Wednesday, July 11, 2012 2:04:09 PM UTC-4, Adam Hardarson wrote: >>>>> >>>>> Hi again, thank you so much for your assistance! >>>>> >>>>> However it's not working so I the page for syntax error and got a Parse >>>>> error: syntax error, unexpected T_INC, expecting ')' in test.php on line >>>>> 37. >>>>> >>>>> That's where the for loop starts... I can't see what the problem might >>>>> be?! >>>>> >>>>> >>>>>> $result124 = mysql_query(" >>>>>> SELECT Matningsnamn AS Matning, >>>>>> Value1, >>>>>> Value2 , >>>>>> Value3 , >>>>>> Value4 >>>>>> FROM myDB WHERE Id ='$first' OR Id ='$second'" >>>>>> ); >>>>>> $rawRows = array(); >>>>>> $cols = array(); >>>>>> // set up domain column >>>>>> $cols[] = array( >>>>>> 'type' => 'string', >>>>>> 'label' => 'Value #' >>>>>> ); >>>>>> while($r = mysql_fetch_assoc($result124)) { >>>>>> $cols[] = array( >>>>>> 'type' => 'string', >>>>>> 'label' => $r['Matning'] >>>>>> ); >>>>>> $rawRows[] = $r; >>>>>> } >>>>>> >>>>>> $outRows = array(); >>>>>> for ($i = 1; i < count($rawRows[0]); i++) { >>>>>> $temp = array(); >>>>>> $temp[0] = array('v' => "Value$i"); >>>>>> for ($j = 0; j < count($rawRows); j++) { >>>>>> if ($rawRows[$j]['Matning'] == $cols[1]['label']) { >>>>>> $temp[1] = array('v' => $rawRows[$j]["Value$i"]); >>>>>> } >>>>>> else if ($rawRows[$j]['Matning'] == $cols[2]['label']) { >>>>>> $temp[2] = array('v' => $rawRows[$j]["Value$i"]); >>>>>> } >>>>>> } >>>>>> $outRows[] = array('c' => $temp); >>>>>> } >>>>>> >>>>>> $dataTable = json_encode(array( >>>>>> 'cols' => $cols, >>>>>> 'rows' => $outRows >>>>>> )); >>>>>> >>>>>> You can then output this into the DataTable constructor: >>>>>> >>>>>> var data = new google.visualization.DataTable(<?php echo $dataTable; >>>>>> ?>); >>>>>> >>>>> >>>>> Seeing the end of the tunnel... :) >>>>> >>>>> Adam >>>>> >>>> >>> Den onsdagen den 11:e juli 2012 kl. 20:30:18 UTC+2 skrev asgallant: >>>> >>>> I forgot the $'s in front of the i's there, try this: >>>> >>>> for ($i = 1; $i < count($rawRows[0]); $i++) { >>>> >>>> On Wednesday, July 11, 2012 2:04:09 PM UTC-4, Adam Hardarson wrote: >>>>> >>>>> Hi again, thank you so much for your assistance! >>>>> >>>>> However it's not working so I the page for syntax error and got a Parse >>>>> error: syntax error, unexpected T_INC, expecting ')' in test.php on line >>>>> 37. >>>>> >>>>> That's where the for loop starts... I can't see what the problem might >>>>> be?! >>>>> >>>>> >>>>>> $result124 = mysql_query(" >>>>>> SELECT Matningsnamn AS Matning, >>>>>> Value1, >>>>>> Value2 , >>>>>> Value3 , >>>>>> Value4 >>>>>> FROM myDB WHERE Id ='$first' OR Id ='$second'" >>>>>> ); >>>>>> $rawRows = array(); >>>>>> $cols = array(); >>>>>> // set up domain column >>>>>> $cols[] = array( >>>>>> 'type' => 'string', >>>>>> 'label' => 'Value #' >>>>>> ); >>>>>> while($r = mysql_fetch_assoc($result124)) { >>>>>> $cols[] = array( >>>>>> 'type' => 'string', >>>>>> 'label' => $r['Matning'] >>>>>> ); >>>>>> $rawRows[] = $r; >>>>>> } >>>>>> >>>>>> $outRows = array(); >>>>>> for ($i = 1; i < count($rawRows[0]); i++) { >>>>>> $temp = array(); >>>>>> $temp[0] = array('v' => "Value$i"); >>>>>> for ($j = 0; j < count($rawRows); j++) { >>>>>> if ($rawRows[$j]['Matning'] == $cols[1]['label']) { >>>>>> $temp[1] = array('v' => $rawRows[$j]["Value$i"]); >>>>>> } >>>>>> else if ($rawRows[$j]['Matning'] == $cols[2]['label']) { >>>>>> $temp[2] = array('v' => $rawRows[$j]["Value$i"]); >>>>>> } >>>>>> } >>>>>> $outRows[] = array('c' => $temp); >>>>>> } >>>>>> >>>>>> $dataTable = json_encode(array( >>>>>> 'cols' => $cols, >>>>>> 'rows' => $outRows >>>>>> )); >>>>>> >>>>>> You can then output this into the DataTable constructor: >>>>>> >>>>>> var data = new google.visualization.DataTable(<?php echo $dataTable; >>>>>> ?>); >>>>>> >>>>> >>>>> Seeing the end of the tunnel... :) >>>>> >>>>> Adam >>>>> >>>> -- You received this message because you are subscribed to the Google Groups "Google Visualization API" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-visualization-api/-/20DbBuL_Ww8J. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-visualization-api?hl=en.
