选择SUM()作为for循环中的变量

时间:2013-02-05 18:41:13

标签: php mysql variables for-loop sum

我正在尝试从数据库生成XML,需要根据列的平均值收集特定数量的数据。对于$numItems变量,这可能会在5到30个查询之间发生变化。

我需要执行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)变量名称,当我单独编写查询时,它可以正常工作,但在语句中分配变量会导致问题。任何人都可以给我任何指示吗?

提前致谢。

2 个答案:

答案 0 :(得分:4)

您的查询中可能会有额外的单引号。我认为应该是:

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

你还应该考虑做一次选择。在for循环中执行多个数据库调用将是一个巨大的性能问题。你可以写一个像这样的选择:

"SELECT SUM(column1), SUM(column2), SUM(column3),..."

答案 1 :(得分:1)

看起来像列名称周围的错误转义/连接...

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

这就是你想要的吗?

还可以使用PDO