2011-02-25 127 views
0

下面是該查詢:PHP代碼回聲不返回「0」,如果沒有結果

$query = "SELECT name,deleted,COUNT(message) as message FROM guestbook_message WHERE name='".$name."' AND deleted=1 GROUP BY name"; 
$result = mysql_query($query) or die(mysql_error()); 
$deletedtotal_row = mysql_fetch_array($result); 

在這裏,當我使用它:

echo "You have had ".($deletedtotal_row['deleted']) ? $deletedtotal_row['deleted'] : '0'." messages deleted"; 

這樣的錯誤,不顯示的語法錯誤,但不顯示任何結果。

但是當我使用:

echo ".$totaldeleted_row['deleted']."; 

它工作正常。但是,如果沒有消息爲該用戶刪除,它不會返回任何內容,但我希望它顯示'0'。

任何想法我錯了嗎?

回答

0

改變這一點:

echo "You have had ".($deletedtotal_row['deleted'] ? $deletedtotal_row['deleted'] : '0')." messages deleted"; 

此外,這echo ".$totaldeleted_row['deleted'].";是非常糟糕的。做到這一點,而不是:

echo $totaldeleted_row['deleted']; 
+0

這不是*很不好*。它可能不是最佳的。閱讀可能不太好。但它絕不是*非常不好*(尤其是與您的選擇有關)...... – ircmaxell 2011-02-25 14:07:59

+0

感謝您的回答。正在使用name =「。$ name」。好的在查詢中使用? – Tom 2011-02-25 14:08:23

+0

當我使用它時,它似乎將我的所有div都不同步。直到我嘗試顯示'0'的結果爲止。 divs也在php裏面。 – Tom 2011-02-25 14:10:49

1
echo "You have had ".intval($deletedtotal_row['deleted'])." messages deleted"; 
+0

不確定爲什麼有人低估了這一點,但我們不必糾正錯別字,但建議更好的代碼。 – Lekensteyn 2011-02-25 14:10:29

0
if(mysql_num_rows($result)==0) { 
    echo 'no rows'; 
} else { 
    echo "You have had " . $deletedtotal_row['deleted'] ." messages deleted"; 
} 
+0

我在回聲中調用它,所以這不起作用。 – Tom 2011-02-25 14:18:14

+0

你可以設置一個var然後在回聲中使用它 - 但我認爲使用intval()可能是一個更好的解決方案。 – 2011-02-25 14:20:09

0

謝謝大家。我得到了它的工作:

echo "You have had ".($deletedtotal_row['deleted'] ? $deletedtotal_row['deleted'] : '0')." messages deleted"; 
+0

如果您使用某人的回答,您應該通過接受他們的回答來承認它。它有助於你的接受評級,這使得人們更傾向於幫助你。這也是堆疊交換網絡的基礎。 – xzyfer 2011-02-26 06:28:26

0

使用:

sprintf("You have had %d messages deleted", $deletedtotal_row['deleted');