Debe verificar el valor de retorno de mysql_query
$query = 'YOUR QUERY';
$result = mysql_query($query);
if (!$result) {
trigger_error('Invalid query: ' . mysql_error()." in ".$query);
}
// go ahead and fetch the results using mysql_num_rows.
Si mysql_query falla, devuelve boolean false en lugar de un resource .
Cuando pasas este boolean valor a mysql_num_rows obtienes este error.