Pense que habia solucionado el problema pero me sigue saliendo enste error:
Cita:
Mis tres tablas son: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`))
-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);
?>
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`
--
`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
![Neurótico](http://static.forosdelweb.com/fdwtheme/images/smilies/scared.png)
--
-- 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