2014-04-27 100 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'; 
}