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つのエントリがあります。

私は何が間違っているのですか?ありがとう

4

2 に答える 2

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 } ?>
        ]);
于 2012-11-16T14:30:22.727 に答える
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 に変換することが保証されます。

于 2012-11-16T14:30:14.400 に答える