2012-11-16 92 views
0
<script type="text/javascript"> 
    function drawVisualization() { 
     // Prepare the data 
    <?php while($row = mysql_fetch_array($result)){ ?> 
     var data = google.visualization.arrayToDataTable([ 
      ['Name', 'Gender', 'Age', 'Freqency'], 
      ['<?php echo $row['name']?>', 
      '<?php echo $row['gender']?>', 
      '<?php echo $row['age']?>', 
      '<?php echo $row['freq']?>'] 
     ]); 
    <?php ?> 
    } 

... 

</script> 

这工作和出现一个图表,但只显示在数据库表中的最后一个条目,并有4个entrys。谷歌图表Mysql和php

我在做什么错? 谢谢

回答

4

试试:

<script type="text/javascript"> 
     function drawVisualization() { 
     // Prepare the data 

     var data = google.visualization.arrayToDataTable([ 
      ['Name', 'Gender', 'Age', 'Freqency'], 
      <?php while($row = mysql_fetch_array($result)){ ?> 
      ['<?php echo $row['name']?>' , '<?php echo $row['gender']?>', <?php echo $row['age']?>, <?php echo $row['freq']?>], 
      <?php } ?> 
     ]); 
+0

工作得很好:) – pleaseDeleteMe

1

您正在构建错误的数据结构。如果您查看了生成的页面的查看源,则会看到

var data = google.visualization.arrayToDataTable(...); 
var data = google.visualization.arrayToDataTable(...); 
var data = google.visualization.arrayToDataTable(...); 
var data = google.visualization.arrayToDataTable(...); 

其中每个新行都会覆盖/销毁前一行。移动var data线外的取环:

var data = google.visualiation.arrayToDataTable([ 
['Name', 'Gender', 'Age', 'Freqency'], 
<?php 
while($row = mysql_fetch_array($result)) { 
    echo json_encode($row); 
} 
?> 

这可能是行不通的,但应该给你的总体思路。请注意使用json_encode()。你没有在你的代码中使用它,并且如果一个人的名字(比如说)包含一个',你将会引入一个javascript语法错误并杀死整个脚本。使用json_encode()保证你将php数据转换成语法正确的javascript。

+0

你也许是对的!我需要研究一下这个json_encode! – pleaseDeleteMe

+0

你能否提供一些关于json的简单资料? – pleaseDeleteMe

+0

http://json.org没有太多。 –