Hola de nuevo pabloccontresas:
La opción del compañero AndresdzPHP es una de las diferentes opciones que tienes para hacer el insert, de hecho, los tres tipos de inserción que te puse en el primer post funcionan:
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.06 sec)
mysql> #Listando los campos, excepto la fecha (Propuesta de Andresdzphp)
-> (nombre_insumo, cantidad, presentacion)
-> VALUES ('uno', 1, 'presentacion 1'); Query OK, 1 row affected (0.00 sec)
mysql> #Listando los campos y enviando NULL (Tal como lo tienes)
-> (fecha_vencimiento, nombre_insumo, cantidad, presentacion)
Query OK, 1 row affected (0.00 sec)
mysql> #Sin Listar los campos enviando null
Query OK, 1 row affected (0.00 sec)
+----+-------------------+---------------+----------+----------------+
| id | fecha_vencimiento | nombre_insumo | cantidad | presentacion |
+----+-------------------+---------------+----------+----------------+
| 1 | NULL | uno
| 1 | presentacion
1 | | 2 | NULL | dos
| 1 | presentacion
2 | | 3 | NULL | tres
| 1 | presentacion
3 | +----+-------------------+---------------+----------+----------------+
En tu caso estás utilizando la opción (2) es decir, estás listando todos los campos de la tabla (con excepción del id que es un autoincremental):
Código PHP:
Ver originalmysql_query("INSERT INTO entrada_insum (fecha_vencimiento, nombre_insumo, cantidad, presentacion) VALUES('$nuevaFecha','$nombre_insumo[$i]', $cantidad[$i], '$presentacion[$i]')"
Lo único que tienes que asegurar es que tu parámetro
'$nuevaFecha' sea
NULL si quieres dejar la fecha vacía, por lo que el problema pareciera con PHP, no con la tabla, utiliza la opción que más te convenga.
Saludos
Leo.