0

データベースから XML を生成しようとしていますが、列の平均に基づいて特定の量のデータを収集する必要があります。これは、変数に対して 5 から 30 のクエリの間で変動する可能性があり$numItemsます。

forループを実行して列名を割り当てる必要がありますSUM($variable)が、データを取得していません(エラーもありません)。

これが私のコードです:

for ($t = 1; $t <= $numItems; $t++){

$query = mysql_fetch_assoc(mysql_query("SELECT SUM(column'".$t."') AS value_sum FROM scoring WHERE ID='" . $userID . "' AND name ='" . $name . "'")); 

$q = $query['value_sum'] / $totalUsers;

echo "<output".$t.">" . $q . "</output".$t.">\n";

}

問題は、SUM(column1)データを取得している列に変数名を割り当てることです。クエリを個別に作成すると機能しますが、ステートメント内で変数を割り当てると問題が発生します。誰でも私に何か指針を与えることができますか?

前もって感謝します。

4

2 に答える 2

4

クエリに余分な一重引用符が含まれている可能性があります。私はそれがすべきだと思います:

"SELECT SUM(column".$t.")..."

また、単一の選択を行うことを検討する必要があります。forループ内で複数のデータベース呼び出しを行うと、パフォーマンスの大きな問題になります。次のように単一の選択を書くことができます:

"SELECT SUM(column1), SUM(column2), SUM(column3),..."
于 2013-02-05T18:47:22.197 に答える
1

列名の周りのエスケープ/連結が悪いように見えます...

"SELECT SUM(column{$t}) AS value_sum FROM scoring WHERE ID='{$userID}' AND name ='{$name}'"

それはあなたが望むものですか?

PDOも使用してください!

于 2013-02-05T18:45:10.740 に答える