Hola otra vez
Pense que habia solucionado el problema pero me sigue saliendo enste error: Cita: Cannot add or update a child row: a foreign key constraint fails (`control_estudios`.`inscripciones`, CONSTRAINT `inscripciones_ibfk_7` FOREIGN KEY (`ci_alumno`) REFERENCES `alumnos` (`ci_alumno`)) Mis tres tablas son:
-Inscripciones
-Alumnos y
-Representantes
Este es mi codigo php: Código PHP: <?php require_once('Connections/control_estudios.php'); ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { $insertSQL = sprintf("INSERT INTO inscripciones (ci_alumno, ci_representante, ano_escolar, fecha_inscripcion, turno_alumno, grado_alumno, seccion_alumno, status_alumno, documentos_recaudados_alumno) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)", GetSQLValueString($_POST['ci_alumno'], "text"), GetSQLValueString($_POST['ci_representante'], "text"), GetSQLValueString($_POST['ano_escolar'], "text"), GetSQLValueString($_POST['fecha_inscripcion'], "date"), GetSQLValueString($_POST['turno_alumno'], "text"), GetSQLValueString($_POST['grado_alumno'], "text"), GetSQLValueString($_POST['seccion_alumno'], "text"), GetSQLValueString($_POST['status_alumno'], "text"), GetSQLValueString($_POST['documentos_recaudados_alumno'], "int")); mysql_select_db($database_control_estudios, $control_estudios); $Result1 = mysql_query($insertSQL, $control_estudios) or die(mysql_error()); } mysql_select_db($database_control_estudios, $control_estudios); $query_representante = "SELECT representantes.ci_representante, CONCAT_WS(' ',representantes.apellido_representante, representantes.nombre_representante) AS representante FROM representantes ORDER BY representantes.apellido_representante"; $representante = mysql_query($query_representante, $control_estudios) or die(mysql_error()); $row_representante = mysql_fetch_assoc($representante); $totalRows_representante = mysql_num_rows($representante); mysql_select_db($database_control_estudios, $control_estudios); $query_alumnos = "SELECT alumnos.ci_alumno, CONCAT_WS(' ',alumnos.primer_apellido_alumno, alumnos.primer_nombre_alumno) AS alumno FROM alumnos ORDER BY alumnos.primer_apellido_alumno"; $alumnos = mysql_query($query_alumnos, $control_estudios) or die(mysql_error()); $row_alumnos = mysql_fetch_assoc($alumnos); $totalRows_alumnos = mysql_num_rows($alumnos); ?> Y este mi codigo sql: Cita: CREATE TABLE IF NOT EXISTS `alumnos` (
`ci_alumno` varchar(10) COLLATE latin1_spanish_ci NOT NULL,
`primer_nombre_alumno` varchar(50) COLLATE latin1_spanish_ci NOT NULL,
`segundo_nombre_alumno` varchar(50) COLLATE latin1_spanish_ci DEFAULT NULL,
`primer_apellido_alumno` varchar(50) COLLATE latin1_spanish_ci NOT NULL,
`segundo_apellido_alumno` varchar(50) COLLATE latin1_spanish_ci DEFAULT NULL,
`lugar_nacimiento_alumno` varchar(100) COLLATE latin1_spanish_ci NOT NULL,
`fecha_nacimiento_alumno` date DEFAULT NULL,
`edad_alumno` int(11) NOT NULL,
`sexo_alumno` enum('m','f') COLLATE latin1_spanish_ci DEFAULT NULL,
`procedencia_alumno` varchar(100) COLLATE latin1_spanish_ci DEFAULT NULL,
`foto_alumno` blob NOT NULL,
`id_alumnos` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ci_alumno`),
KEY `id_alumnos` (`id_alumnos`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci ROW_FORMAT=DYNAMIC COMMENT='Tabla alumnos' AUTO_INCREMENT=4 ;
--
-- Volcar la base de datos para la tabla `alumnos`
Estructura de tabla para la tabla `inscripciones`
--
CREATE TABLE IF NOT EXISTS `inscripciones` (
`id_inscripciones` int(11) NOT NULL AUTO_INCREMENT,
`ci_alumno` varchar(10) COLLATE latin1_spanish_ci NOT NULL,
`ci_representante` varchar(10) COLLATE latin1_spanish_ci NOT NULL,
`ano_escolar` varchar(10) COLLATE latin1_spanish_ci NOT NULL,
`grado_alumno` varchar(11) COLLATE latin1_spanish_ci DEFAULT NULL,
`seccion_alumno` varchar(11) COLLATE latin1_spanish_ci DEFAULT NULL,
`turno_alumno` varchar(11) COLLATE latin1_spanish_ci DEFAULT NULL,
`fecha_inscripcion` date DEFAULT NULL,
`status_alumno` varchar(11) COLLATE latin1_spanish_ci DEFAULT NULL,
`documentos_recaudados_alumno` set('partida_nacimiento','ci_alumno_d','ci_represe ntante_d','fotos_alumno','fotos_representante') COLLATE latin1_spanish_ci DEFAULT NULL,
PRIMARY KEY (`id_inscripciones`),
KEY `ci_alumno` (`ci_alumno`),
KEY `ci_representante` (`ci_representante`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci AUTO_INCREMENT=1 ;
--
-- Volcar la base de datos para la tabla `inscripciones`
--
--
-- Estructura de tabla para la tabla `representantes`
--
CREATE TABLE IF NOT EXISTS `representantes` (
`ci_representante` varchar(10) COLLATE latin1_spanish_ci NOT NULL,
`nombre_padre` varchar(50) COLLATE latin1_spanish_ci DEFAULT NULL,
`nombre_madre` varchar(50) COLLATE latin1_spanish_ci DEFAULT NULL,
`apellido_madre` varchar(50) COLLATE latin1_spanish_ci DEFAULT NULL,
`ci_padre` varchar(10) COLLATE latin1_spanish_ci DEFAULT NULL,
`ci_madre` varchar(10) COLLATE latin1_spanish_ci DEFAULT NULL,
`nombre_representante` varchar(50) COLLATE latin1_spanish_ci NOT NULL,
`apellido_representante` varchar(50) COLLATE latin1_spanish_ci NOT NULL,
`parentesco` varchar(50) COLLATE latin1_spanish_ci NOT NULL,
`profesion_representante` varchar(50) COLLATE latin1_spanish_ci DEFAULT NULL,
`direccion_representante` varchar(50) COLLATE latin1_spanish_ci NOT NULL,
`lugar_trabajo_representante` varchar(50) COLLATE latin1_spanish_ci DEFAULT NULL,
`telefono_representante` varchar(11) COLLATE latin1_spanish_ci NOT NULL,
`apellido_padre` varchar(50) COLLATE latin1_spanish_ci DEFAULT NULL,
`foto_representantes` blob NOT NULL,
`id_representante` int(10) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ci_representante`),
KEY `id_representante` (`id_representante`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci ROW_FORMAT=DYNAMIC AUTO_INCREMENT=3 ;
--
-- Volcar la base de datos para la tabla `representantes`
--
Por favor, necesito ayuda urgentemente por favor
--
-- Filtros para la tabla `inscripciones`
--
ALTER TABLE `inscripciones`
ADD CONSTRAINT `inscripciones_ibfk_1` FOREIGN KEY (`ci_alumno`) REFERENCES `inscripciones` (`ci_alumno`),
ADD CONSTRAINT `inscripciones_ibfk_2` FOREIGN KEY (`ci_representante`) REFERENCES `inscripciones` (`ci_representante`);
Y esta parte donde hago las referencias. No se que esta mal, ayuda
Última edición por GatorV; 08/02/2009 a las 18:31 |