Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2009, 17:53
francia0604
 
Fecha de Ingreso: diciembre-2007
Mensajes: 38
Antigüedad: 16 años, 4 meses
Puntos: 0
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