Php 选择SUM()作为for循环中的变量
我试图从数据库中生成XML,需要根据列的平均值收集特定数量的数据。对于Php 选择SUM()作为for循环中的变量,php,mysql,variables,for-loop,sum,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 sc
$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";
}
for($t=1;$t在列名周围的转义/连接看起来很糟糕
"SELECT SUM(column{$t}) AS value_sum FROM scoring WHERE ID='{$userID}' AND name ='{$name}'"
这就是你想要的吗
同时使用!看起来列名周围的转义/连接不好
"SELECT SUM(column{$t}) AS value_sum FROM scoring WHERE ID='{$userID}' AND name ='{$name}'"
这就是你想要的吗
同时使用!看起来您的查询中可能有额外的单引号。我认为应该是:
"SELECT SUM(column".$t.")..."
你也应该考虑做一个选择。在for循环中执行多个数据库调用将是一个巨大的性能问题。你可以写一个这样的选择:
"SELECT SUM(column1), SUM(column2), SUM(column3),..."
看起来您的查询中可能有额外的单引号。我认为应该是:
"SELECT SUM(column".$t.")..."
你也应该考虑做一个选择。在for循环中执行多个数据库调用将是一个巨大的性能问题。你可以写一个这样的选择:
"SELECT SUM(column1), SUM(column2), SUM(column3),..."
在这种情况下,回显SQL并尝试直接在MySQL终端上执行它。我相信你很快就会有一个想法。在这种情况下,回显SQL并尝试直接在MySQL终端上执行它。我相信你很快就会有一个想法。谢谢Ficuscr,效果非常好。我会阅读PDO,谢谢你的反馈。Thanks Ficuscr,非常好用。我会阅读PDO,谢谢你的反馈。或者一个分组方式。显著的注释,SQL调用越少越好。或者一个分组方式。显著的注释,SQL调用越少越好。