Si la statement no reconoce cuando mysql_num_rows devuelve 0 resultados

Estoy intentando ejecutar el código y parece que me ha dado un resultado incorrecto, lo intenté de muchas maneras y todavía no lo entiendo. Aquí está:

//compares vid num to db been result $id = mysql_real_escape_string(@$_GET['g']); $vid = mysql_real_escape_string(@$_GET['v']); $sql= mysql_query("SELECT videos.* FROM videos WHERE videos.email = (SELECT email FROM page WHERE page.user_id = '$id') AND videos.videoid = '$vid'"); if (mysql_num_rows($sql) == 0) { echo "none";} else echo "it exists"; 

Si ejecuto la consulta en phpmyadmin se ejecuta correctamente, pero cuando se ejecuta en PHP el resultado es offfff, sigue repitiendo que existe incluso cuando phpmyadmin devuelve 0 que es correcto. He estado tratando de resolver esto y sigo sin obtener nada. ¡He intentado !isset($sql) opuestamente el algo.

 if ( $sql ) // valid result { if ( mysql_num_rows( $sql ) > 0 ) // more than 0 records echo "it exists"; else echo "none"; } 

Si el código anterior aún le da un problema, algo en su consulta mysql está causando que se encuentre un resultado.

esto funciona, gracias chicos por su ayuda

 $vid = mysql_real_escape_string(@$_GET['kjvid']); $id = mysql_real_escape_string(@$_GET['pid']); $kjvid = mysql_query("SELECT videos.*, page.email FROM videos LEFT JOIN page ON page.email = videos.email WHERE page.user_id = '$id' AND videos.videoid = '$vid'"); if (mysql_num_rows($kjvid) == 0) { echo "none";} else echo "it exists";