Te sugiero depurar las variables que recibes así como la consulta antes de ejecutarla:
1. Mirar el código no sirve de nada, mientras no seamos capaces de ejecutar mentalmente el código es imposible entender lo que realmente pasa.
2. Agrega sentencias var_dump() al momento de recibir el $_POST y también guarda la consulta en un string antes de ejecutarla para que igual la depures.
Cuando tengas los resultados muestra lo que obtienes.