1

只是想知道将列中的所有值添加在一起的最佳方法是什么,其中 pid=$pid 在列中。

这是我正在使用的一些示例代码:

$query = mysql_query("SELECT pid, reputation FROM reputation WHERE pid=\"{$post['pid']}\"");

while($rep = mysql_fetch_assoc($query))
{
    echo $rep['reputation'];
}

这很好用,但是当 pid=XI 存在多行时,需要将这些行上的信誉列加在一起并输出结果。

4

2 回答 2

2

利用GROUP BY

SELECT pid, SUM(reputation) totalReputation
FROM reputation 
WHERE pid = 0
GROUP BY pid

在php中

$query = mysql_query("SELECT pid, SUM(reputation) totalReputation
                      FROM reputation 
                      WHERE pid = " .$post['pid'] ."
                      GROUP BY pid");

并获取别名

echo $rep['totalReputation'];

作为旁注,SQL Injection如果变量的值(s)来自外部,则查询很容易受到攻击。请看下面的文章,了解如何预防。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。

于 2013-02-11T08:58:50.583 回答
1
$query = mysql_query("SELECT SUM(reputation) as rep FROM reputation WHERE pid=\"{$post['pid']}\"");

while($rep = mysql_fetch_assoc($query))
{
    echo $rep['rep'];
}

注意:您不应该使用 mysql_* 扩展,因为它们现在已被弃用。

于 2013-02-11T08:59:14.207 回答