El problema, probablemente, viene de aqui:
Código PHP:
if($idiomas !== "0") $consulta =" && (idioma=$idiomas)";
Creo q la comparación no es correcta... pq sólo sería "falso" sí $idiomas es un string con valor 0.
En caso de no estar declarada, o ser un número cualquiera, entraría en la condición