espero que me puedan ayudar.
Tengo un problema al cargar un registro a mi base de datos.
cuando yo ingreso todos los datos se me insertan correctamente.
pero el problema va cuando yo dejo un campo vacio uno de los campos en las que va la clave o llave foránea. sabiendo que yo esos campos los deje como NULL al crear mi tabla de la b.d.
Cuando yo ingreso los datos directamente desde el phpmyadmin y dejo un campo FOREIGN KEY vació hay si me guarda perfectamente y me adminte el campo vacio( NULL).
pero cuando lo hago desde mi tabla que yo cree me sale este error:
Error: Cannot add or update a child row: a foreign key constraint fails
que me sale porque no le asigne o deje ese campo vació.
esta es mi estructura de mi de dos tablas de mi b.d exportada del phpmyadmin:
Código:
-- -- Estructura de tabla para la tabla `estudiante` -- CREATE TABLE IF NOT EXISTS `estudiante` ( `cedula_estudiante` int(11) NOT NULL, `modalidad_estudiante` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, `nombres_estudiante` varchar(70) COLLATE utf8_unicode_ci NOT NULL, `apellidos_estudiante` varchar(70) COLLATE utf8_unicode_ci NOT NULL, `telefonos_estudiante` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL, `correo` varchar(99) COLLATE utf8_unicode_ci NOT NULL, `profesion` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, `ciudad` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, `estado` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, `observaciones` mediumtext COLLATE utf8_unicode_ci, `codigo_linea` int(11) NOT NULL, `codigo_proyecto` int(11) DEFAULT NULL, `codigo_cohorte` int(20) DEFAULT NULL, PRIMARY KEY (`cedula_estudiante`), UNIQUE KEY `correo` (`correo`), UNIQUE KEY `codigo_proyecto` (`codigo_proyecto`), KEY `codigo_cohorte` (`codigo_cohorte`), KEY `codigo_linea` (`codigo_linea`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- -- Filtros para la tabla `estudiante` -- ALTER TABLE `estudiante` ADD CONSTRAINT `estudiante_ibfk_1` FOREIGN KEY (`codigo_linea`) REFERENCES `linea` (`codigo_linea`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `estudiante_ibfk_2` FOREIGN KEY (`codigo_proyecto`) REFERENCES `proyectos` (`codigo_proyecto`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `estudiante_ibfk_3` FOREIGN KEY (`codigo_cohorte`) REFERENCES `cohorte` (`codigo_cohorte`);
miren que yo los campos FOREIGN KEY LOS tengo como NULL.
Lo que yo quiero es que yo pueda dejar algunos de estos campos vacios sin que me genere ese error.
estos son los campos de la tabla que son FOREIGN KEY.
codigo_proyecto
codigo_cohorte
codigo_linea
por ejemplo yo voy asignar un estudiante. listo agrego todos los datos de el.
pero si todavía no le tengo asignado un proyecto entonces que yo pueda dejar ese campo vació sin que me genere error.
no se si tenga que agregarle algo a mi código PHP o es problema de mi base de datos. no se.
porque es que estoy confundido de porque en phpmyadmin si me deja agregar el registro dejando esa campo vació ("codigo_proyecto" que es FOREIGN KEY) y desde mi formulario que yo cree me sale ese error.
Espero que me puedan ayudar.
Se los agradecería mucho.