-3

以下は、カウントコメントのスクリプトです。これはうまくいきましたが、コメント0のときに、0コメントではなくコメントを表示するだけです。

助言がありますか ?

<?php
            include "con_config_hapshout.php";

            $query3 = "SELECT COUNT(comment) FROM comment WHERE msg_id='$id'";
            $result3 = mysql_query($query3);

            while($total = mysql_fetch_array($result3)){
                            echo "$total['COUNT(comment)'] comment";
                        }

            ?>
4

3 に答える 3

2
<?php
        include "con_config_hapshout.php";

        $query3 = "SELECT IF(COUNT(comment) = 0, '', COUNT(comment)) AS comment_count
                   FROM comment WHERE msg_id='$id'";
        $result3 = mysql_query($query3);

        while($total = mysql_fetch_array($result3)){
                        echo "$total['comment_count'] comment";
                    }

?>
于 2012-09-03T06:30:05.430 に答える
1

結果を列名でグループ化します。

SELECT COUNT(comment) 
FROM comment 
WHERE msg_id='$id'
GROUP BY comment

SQLFiddle デモ

于 2012-09-03T06:33:06.070 に答える
0

{}PHP 文字列を誤って使用しています。構文を使用しない限り、二重引用符で囲まれた文字列内の配列キー参照は引用符で囲むべきではありません。

echo "{$total['COUNT(comment)']} comment";
      ^---                     ^--

または、クエリでカウントにエイリアスを設定して、後で PHP でそのような醜い配列キーを使用する必要がないようにすることもできます。

SELECT COUNT(comment) AS cnt ...

and

echo $total['cnt'];
于 2012-09-03T06:32:44.057 に答える