我正在尝试从数据库生成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)
变量名称,当我单独编写查询时,它可以正常工作,但在语句中分配变量会导致问题。任何人都可以给我任何指示吗?
提前致谢。
答案 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!