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 回答