¿De verdad no lo entiendes?
Cita: select * from records where id!=-1 or id= or id=14 or id=16 or id=8You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'or id=14 or id=16 or id=8' at line 1
Observa la parte marcada con rojo, ¿notas que no existe valor alguno ahí?
Bueno pues ahí está la clave, en tu bucle estás creando dicha cadena concatenando pero no tienes en cuenta los casos en que el valor no exista o no contenga nada.