el codigo de abajo deberia solucionar tu error, el error se presenta cuando no hay datos en la consulta que realizaste y por lo tanto no se puede extraer datos de la consulta y el motor de php devuelve ese error
Código PHP:
function localidades507(){
echo '<table>';
$zona507b = mysql_query("SELECT * FROM ruteos WHERE zona= 507");
//consultamos se hemos encontrados los datos solicitados o si la consulta nos arroja datos
$datos_e = mysql_num_rows($zona507b);
if( $datos_e > 0 ){
while ($salidab= mysql_fetch_array($zona507b)){
echo '<tr><td>'.$salidab[numero].'</td></tr>';
$zona507= mysql_query("SELECT * FROM localidades WHERE zona= 507 && ruteo= $salidab[numero]");
$datos_e2 = mysql_num_rows($zona507)
if($datos_e2 >0 ) {
while ($salida= mysql_fetch_array($zona507)){
echo '<tr><td>'.$salida[nombre].'<br></td></tr>';
} //cierro while 2°
}else{
echo "No se han encontrado Datos en la Segunda Consulta";
}//cerramos el segundo if
} //cierro while 1°
}else {
echo "No se han encontrado los datos en la Primera Consulta";
}//cerramos el primer if
echo '</table>';
}