2012-09-03 36 views
-3

以下是用於計數註釋的腳本。這工作,但現在我想當評論0,它只是顯示評論,而不是0評論。使用select count時隱藏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"; 
         } 

      ?> 
+0

你什麼?澄清?? –

+0

一個查詢,確實沒有分組只會返回一個單一的行。不需要一會兒()取回循環。 –

+2

有一個叫做'if'語句的小東西... – deceze

回答

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"; 
        } 

?> 
+0

這將回顯「評論」 – 2012-09-03 06:32:00

+0

亞這是OP想要的情況下0評論。 – Omesh

+0

我讀的問題太快了,好的 – 2012-09-03 06:34:45

0

你誤用PHP字符串 - 數組鍵引用雙引號字符串不應該被引用,除非您使用{}語法。

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

或者更好的是,別名在您的查詢計數,這樣你就不必在PHP以後使用這種醜陋的數組鍵:

SELECT COUNT(comment) AS cnt ... 

and 

echo $total['cnt']; 
1

組結果被列名。

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

SQLFiddle Demo