Pero claro que 'va por ahí'. Leíste bien el link que te dí? Observas la diferencia entre ambas consultas?
En la primera NO usas variables, pero en la segunda si, incluso una variable que no haz globalizado. Por consecuencia, la función NO puede acceder a tal variable.
Y si sigues creyendo que eso no es, dentro de la función haz
echo $idx, no imprimirá nada
Ahora sí te diste cuenta?