0

まず第一に、これは非常にアマチュアで申し訳ありません。私はまだ非常に初心者です。

PHP でデータベースを操作し、Google ビジュアライゼーションを使用してきれいに表示する練習をしています。ただし、私のチャートは表示されません。これは、データをチャートに渡す方法が原因だと思います。以前に Google チャートを使用したことがあり、別の方法で行っているのは $row を使用して情報を入力することだけです。チャート。

または、これを間違った方法で行っているので、$row を新しい配列に入れてから、それをチャートに渡す必要がありますか?

どうもありがとう!

これが私のコードです:

<?php
//this script retrieves all data from the fruit table and displays it in a google chart

$page_title = "View the fruit table";

require_once ('connect.php'); //connects to mysql db

//make the query
$query = "SELECT *
          FROM fruits";

$result = @mysql_query ($query); //runs the query
if ($result) { //if it ran alright, display the records

    //load the JSAPI library

    echo '<table align="center" cellspacing="2" cellpadding="2">
          <tr><td align="left"><b>Name of fruit</b></td><td align="left"><b>Amount</b></td></tr>';

    //fetch and print all the records
    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
        echo "<tr><td align=\"left\">$row[0]</td><td align=\"left\">$row[1]</td></tr>\n";
    }

    //load google visualization API library, piechart library and JSAPI library
    echo '<script type="text/javascript" src="https://www.google.com/jsapi"></script>
            <script type="text/javascript">

            google.load("visualization", "1.0",{"packages":["corechart"]});

            google.setOnLoadCallback(drawChart);

            function drawChart(){
                //create the data table
                var data = new google.visualization.DataTable();
                data.addColumn("string","Fruits");
                data.addColumn("number","Amount");
                data.addRows([["$row[0]","$row[1]"]]);

                //set chart options
                var options = {"title":"Amount of different fruits",
                    "width":400,
                    "height":300};

                //instantiate and draw chart, passing in options
                var options = new google.visualization.PieChart(document.getElementById("chart_div"));
                chart.draw(data, options);
                } //end of drawchart function
                </script>';

    //display chart
    echo '<div id="chart_div"></div>';

    echo '</table>';
    mysql_free_result($result); //free up the resources

} else{ //if it did not run alright
    echo '<p>The table could not be displayed due to a system error.</p><p>' . mysql_error() . '</p>';
}

mysql_close(); //close the database connection


?>
4

1 に答える 1

1

文字列内で変数を使用するには、二重引用符で囲む必要があります"$var"

ありえますが" '$var' "、そうではありません' "$var" '

引用符を書き直したり、一部をエスケープしたくない場合は、次のように変更してみてください。

data.addRows([["$row[0]","$row[1]"]]);

に:

data.addRows([
    ["'. $row[0] . '", "'. $row[1] . '"]
]);

また、すべての結果を js に入れているわけではありません。それを達成するには、結果を保存する必要があります (ここでは、結果を文字列として保存するだけです)。

$jsRows = array() ;
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    $jsRows[] = "['{$row[0]}', '{$row[1]}']" ;
    echo "<tr><td align=\"left\">$row[0]</td><td align=\"left\">$row[1]</td></tr>\n";
}
$jsRows = implode(", ", $jsRows) ;

そして、その配列を次のように JavaScript で使用します。

echo '
    data.addRows([
        ' . $jsRows . '
    ]);
' ;
于 2013-05-13T13:00:33.167 に答える