2014-04-27 97 views
0

我創建了一個條件,如果查詢返回一個結果,它將執行一個代碼並返回1或更多。但是,如果查詢是空的,我們將得到0,並且if語句不會被激活。mysql_num_rows不起作用(不會返回0)

不過,我已經越來越1和IF語句激活儘管沒有行返回(在phpMyAdmin的SQL執行測試了它。

一個提示是,它說,「你的SQL查詢成功執行」,而沒有行返回,而是如果說‘MySQL返回的查詢結果爲空’。

發生什麼事,我該如何解決這個問題?

$search_num_rows_2 = mysql_query("SELECT * FROM (SELECT tags_movie.name_movie, tags_game.name_game, tags_sport.name_sport, tags_music.name_music, tags_show.name_show FROM tags_game, tags_movie, tags_sport, tags_music, tags_show WHERE tags_game.relation = '$user_id' && tags_movie.relation = '$user_id' && tags_sport.relation = '$user_id' && tags_music.relation = '$user_id' && tags_show.relation = '$user_id') somealias WHERE name_movie LIKE '{$movie}%' && name_game LIKE '{$name_game}%' &&name_sport LIKE '{$sport}%' &&name_music LIKE '{$music}%' && name_show LIKE '{$show}%'"); 

$number = mysql_num_rows($search_num_rows_2); 
echo $number; 
if ($number != 0){ 

    } 
+1

這意味着你沒有結果對於WHERE條件,嘗試刪除WHERE部分,看看是否有什麼事情,你得到的輸出。 –

+1

最後刪除了WHERE條件,但仍表示查詢已成功執行。如果有一行,它會顯示它,但如果沒有,它不會說它是空的。 – user3377126

+1

'echo $ number的輸出是什麼;'? –

回答

0

我的理解,你沒有落實在您的中找到空的結果塊,它應該是這樣的,

if ($number != 0){ 
    echo $number; 
} else { 
    echo 'Empty result'; 
} 

編輯1

$res = mysql_query("SELECT * FROM (SELECT tags_movie.name_movie, tags_game.name_game, tags_sport.name_sport, tags_music.name_music, tags_show.name_show FROM tags_game, tags_movie, tags_sport, tags_music, tags_show WHERE tags_game.relation = '$user_id' && tags_movie.relation = '$user_id' && tags_sport.relation = '$user_id' && tags_music.relation = '$user_id' && tags_show.relation = '$user_id') somealias WHERE name_movie LIKE '{$movie}%' && name_game LIKE '{$name_game}%' &&name_sport LIKE '{$sport}%' &&name_music LIKE '{$music}%' && name_show LIKE '{$show}%'"); 
$data = mysql_fetch_array($res); 
if (count($data) > 0){ 
     print_r($data); 
} else { 
     echo 'Empty result'; 
}