Bueno, pues ahora comprueba la sentencia SQL que le estás pasando a la función(mysqli_query o lo que sea). En vez de pasar la sentencia a la función haz un echo $sentencia o como hayas llamado a la variable de la sentencia para ver que le estás enviando al servidor MySQL y luego copiala al portapapeles y pegala en la consola de MySQL. Todo este proceso se llama depurar.
hice esto:
y ne sale lo siguiente:
La sentencia que me da problemas es : INSERT INTO pedidos (id_pedido, cliente_id, producto_id, fecha) VALUES (12, 0, 0, '2018-03-27')
Veo que en el apartado Clientes y Producto, no me toma los valores que elijo y los deja en 0...
y lo que yo deduzco es que ese error ocurre porque al asignarle un 0 al cliente_id como no existe esa variable en id_cliente que es la llave primaria ocurre esto, puede ser?