Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: chury666 en 13 Febrero 2013, 08:43 am



Título: ayuda a completar este codigo
Publicado por: chury666 en 13 Febrero 2013, 08:43 am
tengo un problema con un código como lo estoy formulando me guarda la calificación de los alumnos del ultimo registro que introduzco quiero que cada alumno tenga su propias calificaciones alguien sabe como corregirlo?
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<link href="asistencia.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="Freebooter-Script-fontfacekit/stylesheet.css" />
<title>listado</title>
</head>
<?php
   include("conectar.php");
   $resultados = mysql_query("SELECT id_alumno, nombre FROM alumno where grupo='1-A' ORDER BY nombre");
?>
<body bgcolor="#070646">
<h1>Escuela Juan Escutia</h1>
<form method="post" action="procesarcla1.php">
<table border="2" bgcolor="#98D8F4">
   <tr>
       <th>N.</th>       
        <th>Alumno</th>
        <th>Español</th>
        <th>Matematicas</th>
        <th>Exploracion de la naturaleza y sociedad</th>
        <th>Formacion civica y etica</th>
        <th>Educacion Fisica</th>
        <th>Educ. Artistica</th>
       
       
       
    </tr>
   
     <?php
       while($row = mysql_fetch_array($resultados)){
    ?>
      <form method="post" action="procesarcla1.php">
   <tr>
       <td><?php echo $row[0]?> </td>       
       <td><?php echo $row[1]?> </td>
        <td><input type="number" size="10" maxlength="10" name="espanol"></td>
        <td><input type="number" size="10" maxlength="10" name="matematicas"></td>
        <td><input type="number" size="10" maxlength="10" name="ens"></td>
        <td><input type="number" size="10" maxlength="10" name="fce"></td>
        <td><input type="number" size="10" maxlength="10" name="ef"></td>
        <td><input type="number" size="10" maxlength="10" name="ea"></td>       
    </tr>
    <?php
      }
   ?>
   
</table>
<input type="submit" value="Guardar">
</form>

<a href="mostrarcali.php" style="color:#FFF">Mostrar calificaciones</a>
</body>
</html>


________________________________________________________________
aqui esta a la pagina que manda el form que es el procesarcla1.php
<?php
   include("conectar.php");
   
         
         
       
        $espanol = $_POST["espanol"];
      $matematicas = $_POST["matematicas"];
      $ens = $_POST["ens"];
      $fce = $_POST["fce"];
      $ef = $_POST["ef"];
      $ea = $_POST["ea"];

        $resultados = mysql_query("SELECT id_alumno FROM alumno where grupo='1-A' ORDER BY nombre");
      while($row = mysql_fetch_array($resultados)){

   

 
    if (mysql_query("INSERT INTO `escuela`.`primero` (`id_alumno`,`espanol`, `matematicas`, `ens`, `fce`, `ef`, `ea`) VALUES
    (".$row[0].", ".$espanol.", ".$matematicas.", ".$ens.", ".$fce.", ".$ef.", ".$ea.")")){
   header("location:mostrarcali.php");
    }else{
      header("location:listadocal.php");
   
   
      }
      
      
      }

      
?>


Título: Re: ayuda a completar este codigo
Publicado por: chury666 en 13 Febrero 2013, 18:55 pm
u.u


Título: Re: ayuda a completar este codigo
Publicado por: it3r en 13 Febrero 2013, 20:33 pm
envia los inputs como arrays así:

Código:
<input type="number" size="10" maxlength="10" name="espanol[<?PHP echo $row['id_alumno']; ?>]">


eso hara que se envie como espanol[2], donde 2 es el id del alumno, luego en mostrarcali.php recorres los alumnos y obtienes sus notas con $_POST['espanol'][$id_alumno];

Si solo necesitas las notas del mes actual deberias cambiar el INSERT por UPDATE, ya que cada vez que ingresas notas ingresas un nuevo registro en vez de actualizarlo, ahora si quieres tener un historial de notas, deberias ponerle aunque sea una fecha para luego poder tener un historial de notas.

Saludos.


Título: Re: ayuda a completar este codigo
Publicado por: chury666 en 18 Febrero 2013, 23:43 pm
muchas gracias it3r me sirvió de mucho tu respuesta ya solucione el problema (Y)