Mi amigo TRUMAN muchas gracias por tu tiempo y ayuda, ya modifiqué mi código como tu me lo has indicado sin embargo me marca un error que dice:
POSTFallo en la insercion de registro en la Base de Datos: Cannot add or update a child row: a foreign key constraint fails (`seresesp_milista/ml_dat_ASISTENCIA`, CONSTRAINT `ID_ALUMNO_R2` FOREIGN KEY (`ID_ALUMNO`) REFERENCES `ml_dat_ALUMNO` (`ID_ALUMNO`) ON DELETE CASCADE ON UPDATE CASCADE)
No se si sea ya cosa de mi base de datos o sea otra cosa:
- La lista de alumnos los tomo del ID_ALUMNOS de una tabla que se llama ml_dat_ALUMNOS.
- Quiero insertar el textbox ID_GRUPO (que toma el ID de una sesión de GRUPO), ALUMNOS (ID tomado de ml_dat_ALUMNOS), ASISTENCIA y FECHA_ASISTENCIA (escrita por el usuario) a otra tabla llamada ml_dat_ASISTENCIA.
- Tengo 2 relaciones:
* ID_GRUPO con la tabla ml_dat_GRUPO.
* ID_ALUMNO con la tabla ml_dat_ALUMNO
Te dejo mi código:
Código formulario
Código PHP:
<?php
$usuario_gpo=mysql_query("SELECT ID_GRUPO,GRUPO_NUMERO FROM ml_dat_GRUPO WHERE GRUPO_NUMERO = '$gpo'");
$row_gpo = mysql_fetch_row($usuario_gpo);
$nombre_gpo=$row_gpo[0];
$usu_alum=mysql_query("SELECT ID_ALUMNO FROM ml_dat_ALUMNO WHERE ID_GRUPO = '$nombre_gpo'");
echo "<table width='765' border='2' align='left'>";
echo '<form action="CONEXION_ASISTENCIA.php" id="asist" method="POST">';
echo "<tr>";
echo "<td width='236' bgcolor='#C4CDFD' align='center'><font size='-1'><font face='Arial'><b>Alumno</b></td>";
echo "<td width='236' bgcolor='#C4CDFD' align='center'><font size='-1'><font face='Arial'><b>Asistencia</b></td>";
echo "<td width='236' bgcolor='#C4CDFD' align='center'><font size='-1'><font face='Arial'><b>Fecha de asistencia</b></td>";
echo "</tr>";
while ($row_asist = mysql_fetch_row($usu_alum)){
echo "<tr> \n";
echo "<input type='hidden' name='ID_GRUP[]' id='ID_GRUP' value='$nombre_gpo' />";
echo "<td width='236' bgcolor='#C4CDFD' align='center'><input type='text' name='ALUMNOS[]' size='20' maxlength='20' value='$row_asist[0]'><font size='-1'><font face='Arial'></td></input> \n";
echo "<td width='236' bgcolor='#C4CDFD' align='center'><input type='text' name='ASIST[]' size='20' maxlength='20' value=''><font size='-1'><font face='Arial'></td></input> \n";
echo "<td width='236' bgcolor='#C4CDFD' align='center'><input type='text' name='FECHA_ASISTENCIA[]' size='20' maxlength='20' value=''><font size='-1'><font face='Arial'></td></input> \n";
echo "</tr> \n";
}
echo "<td width='236' bgcolor='#C4CDFD' align='center'><input type='submit' name='ENVIAR' id='ENVIAR' value='Guardar'><input type='reset' name='RESTABLECER' id='RESTABLECER' value='Borrar datos'><font size='-1'><font face='Arial'></td> \n";
echo "</font>";
echo "</table> \n";
echo '</form>';
?>
Código que recibe del submit
Código PHP:
<?php
$conexion=mysql_connect("localhost","-------------","--------------");
if (!$conexion) {
die("Fallo la conexión a la Base de Datos: " . mysql_error());
}
$db=mysql_select_db("---------------",$conexion);
if (!$db) {
die("Fallo la selección de la Base de Datos: " . mysql_error());
}
$GRUPO=$_POST['ID_GRUP[]'];
$ALUMNO=$_POST['ALUMNOS[]'];
$ASISTENCIA=$_POST['ASIST[]'];
$FECHA_ASISTENCIA=$_POST['FECHA_ASISTENCIA[]'];
for($i=0; $i<count(POST); $i++)
{
$insertar=mysql_query("INSERT INTO ml_dat_ASISTENCIA(ID_GRUPO,ID_ALUMNO,ASISTENCIA,FECHA_ASIST) VALUES('$GRUPO[$i]','$ALUMNOS[$i]','$ASISTENCIA[$i]','$FECHA_ASISTENCIA[$i]')",$conexion);
if (!$insertar) {
die("Fallo en la insercion de registro en la Base de Datos: " . mysql_error());
}
mysql_close($conexion);
echo '<script>alert("Los datos han sido almacenados en la base de datos");</script>';
echo '<SCRIPT LANGUAGE="javascript">
location.href="MILISTA_BD_ASIST.php";
</SCRIPT>';
}
?>
NOTA:
- El sizeoff(POST) me marca error así que utilicé count(POST).
- El:
Código PHP:
echo '<pre>';
print_r(POST);
Tiene la misma función pero lo cambié por:
Código PHP:
if (!$insertar) {
die("Fallo en la insercion de registro en la Base de Datos: " . mysql_error());
}
mysql_close($conexion);
echo '<script>alert("Los datos han sido almacenados en la base de datos");</script>';
echo '<SCRIPT LANGUAGE="javascript">
location.href="MILISTA_BD_ASIST.php";
</SCRIPT>';
}
Muchas gracias