2011-02-18 118 views
3

我有這樣的PHP代碼:MySQL的返回結果,如果0行返回

$query = "SELECT name, COUNT(message) FROM guestbook_message WHERE name='".$req_user_info['username']."' GROUP BY name"; 

$result = mysql_query($query) or die(mysql_error()); 

while($row = mysql_fetch_array($result)) 
{ 
    echo "Messages posted: ". $row['COUNT(message)'] .""; 
    echo "<br />"; 
} 

它會顯示評論的用戶已張貼的金額。

如果沒有從該用戶發佈的消息,我該如何返回值?目前沒有任何顯示。但我希望它顯示「消息發佈:0」

任何想法?

回答

9

使用mysql_num_rows檢查結果中返回的結果數。

$query = "SELECT name, COUNT(message) FROM guestbook_message WHERE name='".$req_user_info['username']."' GROUP BY name"; 

$result = mysql_query($query) or die(mysql_error()); 

if(mysql_num_rows($result) > 0) 
    while($row = mysql_fetch_array($result)) 
    { 
     echo "Messages posted: ". $row['COUNT(message)'] .""; 
     echo "<br />"; 
    } 
else 
    echo "NO Messages posted. <br />"; 
1
if ($row = mysql_fetch_array($result)) { 
    echo "Messages posted: ". $row['COUNT(message)'] . ""; 
    echo "<br />"; 
} 
else { 
    echo "Messages posted: 0"; 
    echo "<br />"; 
} 
+0

謝謝mellamokb!我也忘了把AND刪除在我的WHERE子句中。這是漫長的一天...... – Tom 2011-02-18 18:02:46

+0

@湯姆:沒問題。請將答案標記爲已接受,以解決您的問題。 – mellamokb 2011-02-18 18:04:40

0

更換$row['COUNT(message)']tertiary operator

($row['COUNT(message)'] > 0 ? $row['COUNT(message)'] : 0) 

這基本上是一個壓縮if... else...聲明。