2012-10-23 57 views
-2

在查詢評論時,如果有任何評論,應該顯示,如果沒有任何評論,它應該顯示沒有評論。IF/ELSE不能顯示想要的結果

註釋顯示正確,但if函數顯示沒有任何註釋不起作用。

$comments = mysql_query ("SELECT * FROM comments WHERE post_id = '". $_GET['id']."'"); 

while ($comment = mysql_fetch_array ($comments)) { 

    //If there are'nt any results 
    if(mysql_num_rows($comment) < 0) { 
     echo "No comments yet!"; 

} else { 

    //If there are any results 
     echo "<p>" . $comment['comment'] . "</p> 
      <p><b>" . $comment['author'] . "</b>, " . date("M j, Y ", strtotime($comment["date"])) . "</p>"; 
    } 
} 
+0

如果(mysql_num_rows($評論)<1) - 改變0到1 – s3polz

+0

在「不工作」中準確定義你的意思。 – Leri

+0

'(mysql_num_rows($ comment)<0)'如果沒有找到它將會是0,但是你想要小於0,所以它到了else部分。將0改爲1,它會起作用。 – CustomX

回答

1

應重新組織你的代碼,你必須在比較了0條評論一個錯誤:

$comments = mysql_query ("SELECT * FROM comments WHERE post_id = '". $_GET['id']."'"); 

//If there are'nt any results 
if(mysql_num_rows($comments) == 0) { // <-- watch for 0 results 
    echo "No comments yet!";    
} 
else { 
    while ($comment = mysql_fetch_array ($comments)) {       
    //If there are any results 
    echo "<p>" . $comment['comment'] . "</p> 
    <p><b>" . $comment['author'] . "</b>, " . date("M j, Y ", strtotime($comment["date"])) . "</p>"; 
    } 
} 
+0

sp3polz:我試過但沒有工作 PLB:不工作=沒有顯示任何內容。 JvdBerg:重新排列代碼並將數字從0更改爲1 .. thx guys! –

+0

是我還是那個代碼不完全是邏輯?在IF函數中,你檢查$ comment是否顯示多於0行,但是你沒有在任何地方定義$ comment,也不執行給$ comment一個值的查詢(這隻在else部分完成)? – CustomX

+0

在mysql_num_rows中存在拼寫錯誤,糾正了 – JvdBerg

0

的問題是:

if(mysql_num_rows($comment) < 0) 

您不能低於0行。更改爲:

if(mysql_num_rows($comment) <= 0) 

(或== 0,或真的沒有什麼東西時,它會觸發0,但不高於0)