¿Por qué solo inserta el ultimo dato en mysql?
Hola amigos, tengo un problema el cual ya lleva varios días sacándome la cabeza y no entiendo.
Estoy desarrollando un sistema de control de asistencia de alumnos en php, todo va bien excepto que a la hora de tomar asistencia de los alumnos solo inserta en mysql el ultimo alumno y la ultima asignatura con su respectiva falta de asistencia.
Aquí esta el código.
La conexión:
<?php function conexion(){ $con = mysql_connect("localhost","root","nose"); if (!$con){ die('Could not connect: ' . Mysql_error()); } mysql_select_db("database", $con); return($con); } ?>
Este es el código que me lista los alumnos y las asignaturas.
Realizo consultas a varias tablas,una tabla de horarios(horario_primeroa)que contiene los horarios de todos los grados, una tabla llamada alumnos que me trae la lista de los alumnos de cada grado, en este caso Primero A.
<?php include 'conexion.php'; echo'<h2>Tomar Asistencia</h2>'; $con=conexion(); $res=mysql_query("select * from horario_primeroa where num='53' ",$con); echo '<center>'; echo '<form method="post" action="asistencia.php">'; date_default_timezone_set('America/Bogota'); $dia=date('w'); if($dia==1) {$dia="lunes";} if($dia==2) {$dia="martes";} if($dia==3) {$dia="miercoles";} if($dia==4) {$dia="jueves";} if($dia==5) { $dia="viernes";} echo $dia; echo '<p><label>Tomar Asistencia</label></p> <table border="1" width="92%"> '; echo '<td align="center" width="310">Nombre</td>'; while($fila=mysql_fetch_array($res)) { $q=$fila['nomgrado']; //echo $fila[$dia]; echo '<td align="center" width="119">'; echo '<input type=text name=asig1 size=9 readonly=readonly value='.$fila[$dia].' style="vertical-align: center; border: 1px solid #FFFFFF; padding: 0">'; echo '</td>'; } $result=mysql_query("select * from alumnos where grado='Primero A' ",$con); while($fila=mysql_fetch_array($result)) { echo '<tr>'; echo '<td align="center" width="119">'; echo "<input type=text name=nombre1 size=9 readonly=readonly value=".$fila['nombre_alumno'] ." style='vertical-align: center; border: 1px solid #FFFFFF; padding: 0'>"; echo '</td>'; $d=$fila['id_alumno']; echo '<head> <script src="jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $(".togglecheckbox").bind("click",function() { if ($(this).attr("checked")==true) { $("input.checkbox").each(function(){ $(this).attr("checked",true); }); } else { $("input.checkbox").each(function(){ if ($(this).data("checked")==0) $(this).removeAttr("checked"); }); } }); $(".togglecheckbox_'.$d.'").bind("click",function() { if ($(this).attr("checked")==true) { $("input.checkbox_'.$d.'").each(function(){ $(this).attr("checked",true); }); } else { $("input.checkbox_'.$d.'").each(function(){ $(this).removeAttr("checked"); }); } }); }); </script> </head>'; echo '<td align="center" width="119"><label> <input type="checkbox" class="togglecheckbox_'.$d.'" name="f1" value="1"></label></td> <td align="center" width="119"><label> <input type="checkbox" name="f2" value="1" class="checkbox_'.$d.'"></label></td> <td align="center" width="119"><label> <input type="checkbox" name="f3" value="1" class="checkbox_'.$d.'"></label></td> <td align="center" width="119"><label> <input type="checkbox" name="f4" value="1" class="checkbox_'.$d.'"></label></td> <td align="center" width="119"><label> <input type="checkbox" name="f5" value="1" class="checkbox_'.$d.'"></label></td> <td align="center" width="119"><label> <input type="checkbox" name="f6" value="1" class="checkbox_'.$d.'"></label></td> <td align="center"><label> <input type="checkbox" name="f7" value="1" class="checkbox_'.$d.'"></label></td> </tr>'; } echo '</center>'; echo '</table>'; echo '<p><input type="submit" value="Enviar" name="B1"></p>'; echo '</form>'; echo "</body>"; ?>
La idea es que al tomar la asistencia de X cantidad de alumnos, guarde la falta de esa materia por alumno, y también guarde el nombre de ese alumno que se le pone la falta .
Me explico, si tengo dos alumnos, por ejemplo:
Nombre Matemáticas Ingles Física
Juan x x
Pedro x
Al marcar digamos dos casillas de Juan y una de Pedro, debería guardarme las faltas correspondientes. Digamos Juan falto a ingles y física, así que solo debería guardarme en la base de datos el nombre, en este caso Juan y las asignaturas a las que falto, ingles y física, y si marco alguna casilla de Pedro tambien deberia guardar los mismos datos, teniendo en cuenta de que la lista de alumnos es aun mas amplia, por lo tanto serian varios nombres y varias casillas y solamente debe guardar los alumnos que tienen falta de asistencia.
Nombre-asignatura a la que falto.
Pero aun lo logro hacer esto, ya no se que mas moverle, si pudiesen ayudarme les agradeceria mucho :)