Deberías contar el número de reesultados antes de pretender recorrer el mismo:
Código PHP:
mysql_conecct(.......);
// NO uses mysql_db_query() .. usa:
mysql_select_db("tunombreDB");
$resultado=mysql_query($consulta) or die(mysql_error());
if (mysql_num_rows($resultado) > 0){
// usa tu while con mysql_fetch.....
} else {
echo "no hay resultados";
}
Si no cuentas los registros que te pueda devolver tu consulta .. puede ser que obtengas "0" .. ahí tendrías ese error. Por otro lado .. usa "mysql_error()" para detectar errores .. tal vez de SQL o de conexión .. ahí se te informarán con esa función.
Un saludo,