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値が外部から取得された場合、クエリは脆弱です。予防方法については、以下の記事をご覧ください。を使用すると、値を一重引用符で囲む必要がなくなります。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 に答える