2012-11-16 122 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沒有太多。 –