2012-01-03 74 views
1

我在我的網站上有一個MySQL關鍵字搜索,它工作正常。問題在於當某人搜索我沒有添加的關鍵字時,結果頁面上什麼也沒有顯示。PHP mysql_num_rows「沒有結果」的消息?

而不是沒有出現我想有一個no results found消息。

所以我用下面的代碼:

if (mysql_num_rows($Recordset1) > 0) { 
    // no results 
    echo 'No results found.'; 
} else { 
    do { 
    // output 
    } while($res = mysql_fetch_assoc($Recordset1)); 
} 

的問題是,每當我搜索的關鍵詞知道它是在我的數據庫,我得到我的結果與no results found消息一起。 (no results found消息也出現在我的網頁的左上角,推動我的整個網站。)

當我搜索一個關鍵字,我知道不在我的分貝,我沒有得到任何消息,它顯示沒有像以前那樣。

我玩弄了更大,更小,和相同的跡象,並得到類似的問題。我被告知我的邏輯是倒退的,但我不確定它應該如何看待。

任何幫助將不勝感激,在此先感謝。

回答

0
if (mysql_num_rows($Recordset1) == 0) { 
. . . 
+0

一段後,取一個變量導致我的搜索停止在一起工作的原因。 – Will 2012-01-03 02:52:32

1

while循環不適用於數據庫讀取,除非您在進入循環之前執行一個行讀取操作。對於輸出部分的第一次迭代,將不會有從數據庫中獲取的任何結果,因此您將不會輸出任何結果。

如果沒有結果,mysql_num_rows()會返回一個0,所以您實際上會反轉這個elogic,並且說實際上沒有行。即使是單行結果也會使> 0返回true並輸出「no results」。當您使用> 0則表示「有成果」,並「沒有結果發現」

0

更改,如果條件

if (mysql_num_rows($Recordset1) == 0) { 

+0

由於某種原因,這使我的搜索停止工作在一起 – Will 2012-01-03 02:52:04

+0

檢查你的查詢。 – Virendra 2012-01-03 05:27:53

1
if (mysql_num_rows($Recordset1) == 0) { 
// no results 
echo 'No results found.'; 
} else { 
while($res = mysql_fetch_assoc($Recordset1)) { 
// output 
} 
} 

嘗試...

1)如果沒有結果,那麼mysql_num_rows將獲得輸出之前是0 2)你不應該使用它

相關問題