Foros del Web » Programando para Internet » PHP »

Ingreso Notas a BD Varios alumnos, necesito ayuda

Estas en el tema de Ingreso Notas a BD Varios alumnos, necesito ayuda en el foro de PHP en Foros del Web. Estimados recurro a ustedes para ver si mi problema tiene solucion. Tengo la Siguiente tabla: CREATE TABLE `colegios_notas` ( `rutalumno` varchar(11) NOT NULL, `n1` varchar(3) ...
  #1 (permalink)  
Antiguo 31/07/2008, 14:16
 
Fecha de Ingreso: abril-2008
Mensajes: 14
Antigüedad: 16 años
Puntos: 0
Ingreso Notas a BD Varios alumnos, necesito ayuda

Estimados recurro a ustedes para ver si mi problema tiene solucion.
Tengo la Siguiente tabla:

CREATE TABLE `colegios_notas` (
`rutalumno` varchar(11) NOT NULL,
`n1` varchar(3) default NULL,
`n2` varchar(3) default NULL,
`n3` varchar(3) default NULL,
`n4` varchar(3) default NULL,
`n5` varchar(3) default NULL,
`n6` varchar(3) default NULL,
`n7` varchar(3) default NULL,
`n8` varchar(3) default NULL,
`n9` varchar(3) default NULL,
`n10` varchar(3) default NULL,
`n11` varchar(3) default NULL,
`n12` varchar(3) default NULL,
`n13` varchar(3) default NULL,
`n14` varchar(3) default NULL,
`n15` varchar(3) default NULL,
PRIMARY KEY (`rutalumno`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AVG_ROW_LENGTH=712 ROW_FORMAT=COMPACT COMMENT='InnoDB free: 12288 kB; InnoDB free: 9216 kB; InnoDB free: 71';

selecciono el curso con una consulta y me la muestra en el formulario para ingresar o actualizar los datos es el siguiente

Código PHP:
$sql "select * from colegios_notas where rut='$rut' and codigo ='$codigo' and rbd='$rbd'";
$sql mysql_query($sql) or die(mysql_error());
echo    
"<form action='ingreso_notas.php' method='post'>";
while(
$row mysql_fetch_array($sql)){
echo    
"<input name='rbd' value=".$row['rbd']." style='visibility:hidden;'>";
echo    
"<table align='center' border='1' width='1024'>";
echo     
"<td width='10%'><input name='rutalumno' size='10' value=".$row['rutalumno']."></td>";
echo     
"<td width='5%'><input  name='n1' size='3' value=".$row['n1']."></td>";
echo     
"<td width='5%'><input name='n2' size='3' value=".$row['n2']."></td>";
echo     
"<td width='5%'><input name='n3' size='3' value=".$row['n3']."></td>";
echo     
"<td width='5%'><input name='n4' size='3' value=".$row['n4']."></td>";
echo     
"<td width='5%'><input name='n5' size='3' value=".$row['n5']."></td>";
echo     
"<td width='5%'><input name='n6' size='3' value=".$row['n6']."></td>";
echo     
"<td width='5%'><input name='n7' size='3' value=".$row['n7']."></td>";
echo     
"<td width='5%'><input name='n8' size='3' value=".$row['n8']."></td>";
echo     
"<td width='5%'><input name='n9' size='3' value=".$row['n9']."></td>";
echo     
"<td width='5%'><input name='n10' size='3' value=".$row['n10']."></td>";
echo     
"<td width='5%'><input name='n11' size='3' value=".$row['n11']."></td>";
echo     
"<td width='5%'><input name='n12' size='3' value=".$row['n12']."></td>";
echo     
"<td width='5%'><input name='n13' size='3' value=".$row['n13']."></td>";
echo     
"<td width='5%'><input name='n14' size='3' value=".$row['n14']."></td>";
echo     
"<td width='5%'><input name='n15' size='3' value=".$row['n15']."></td>";
echo     
"<td width='15%'><input name='promedio1' size='3' value=".$row['promedio1']."></td>";
echo    
"</table>";
}
echo    
"<table align='center'>";
echo     
"<td width='15%'><input type='submit' value='INGRESAR'></td>";
echo    
"</table>";
echo    
"</form>"
El problema es que cuando tengo mas de un alumno solo me actualiza el ultimo al yo llamar a ingreso_notas.php

ingreso_notas.php
Código PHP:
$rbd $_POST['rbd'];
$rutalumno $_POST['rutalumno'];
$n1$_POST['n1'];
$n2$_POST['n2'];
$n3$_POST['n3'];
$n4$_POST['n4'];
$n5$_POST['n5'];
$n6$_POST['n6'];
$n7$_POST['n7'];
$n8$_POST['n8'];
$n9$_POST['n9'];
$n10$_POST['n10'];
$n11$_POST['n11'];
$n12$_POST['n12'];
$n13$_POST['n13'];
$n14$_POST['n14'];
$n15$_POST['n15'];
mysql_query("UPDATE colegios_notas SET n1='$n1', n2='$n2', n3='$n3', n4='$n4', n5='$n5', n6='$n6', n7='$n7', n8='$n8', n9='$n9', 
n10='$n10', n11='$n11', n12='$n12', n13='$n14', n15='$n15' WHERE rutalumno=$rutalumno and rbd='$rbd'"
); 
Yo lo que quiero es que actualize alumno (rutalumno) y cada nota que se le ingrese a cada uno.

desde ya muchas gracias

Última edición por hasc; 31/07/2008 a las 15:00
  #2 (permalink)  
Antiguo 31/07/2008, 15:43
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Ingreso Notas a BD Varios alumnos, necesito ayuda

Cambia esta linea:
Código HTML:
"<input name='rbd' value=".$row['rbd']." style='visibility:hidden;'>";
por esta otra:
Código HTML:
"<input name='rbd[]' value=".$row['rbd']." style='visibility:hidden;'>";
De ese modo, recibiras un array con $_POST['rbd'] para cada alumno, simplemente haces un foreach o similar para recorrer ese array y atacar a la BBDD
  #3 (permalink)  
Antiguo 31/07/2008, 19:55
 
Fecha de Ingreso: abril-2008
Mensajes: 14
Antigüedad: 16 años
Puntos: 0
Respuesta: Ingreso Notas a BD Varios alumnos, necesito ayuda

Cita:
Iniciado por DooBie Ver Mensaje
Cambia esta linea:
Código HTML:
"<input name='rbd' value=".$row['rbd']." style='visibility:hidden;'>";
por esta otra:
Código HTML:
"<input name='rbd[]' value=".$row['rbd']." style='visibility:hidden;'>";
De ese modo, recibiras un array con $_POST['rbd'] para cada alumno, simplemente haces un foreach o similar para recorrer ese array y atacar a la BBDD
No me funciona asi, será porque la clave primaria es el rutalumno, lo que pasa es que en un formulario tengo varios alumnos con distinto rutalumno, e ingreso y/o actualizo las notas pero solo me actualiza el ultimo rutalumno de la tabla, no asi los demas que estan hacia arriba.

porfavor ayuda....
  #4 (permalink)  
Antiguo 31/07/2008, 20:33
 
Fecha de Ingreso: agosto-2007
Mensajes: 14
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Ingreso Notas a BD Varios alumnos, necesito ayuda

nunca te cfuncionara de esa manera nesesitas definir a cada alumno como un formulario
y una sentencia update por alumnoya que en cada alumno tienes valores distintos
  #5 (permalink)  
Antiguo 01/08/2008, 08:16
 
Fecha de Ingreso: abril-2008
Mensajes: 14
Antigüedad: 16 años
Puntos: 0
Respuesta: Ingreso Notas a BD Varios alumnos, necesito ayuda

Cita:
Iniciado por pecasv Ver Mensaje
nunca te cfuncionara de esa manera nesesitas definir a cada alumno como un formulario
y una sentencia update por alumnoya que en cada alumno tienes valores distintos
Existirá alguna forma de hacerlo porfavor necesito ayuda,, nadie?
  #6 (permalink)  
Antiguo 01/08/2008, 08:33
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Ingreso Notas a BD Varios alumnos, necesito ayuda

Cita:
Iniciado por hasc Ver Mensaje
No me funciona asi, será porque la clave primaria es el rutalumno, lo que pasa es que en un formulario tengo varios alumnos con distinto rutalumno, e ingreso y/o actualizo las notas pero solo me actualiza el ultimo rutalumno de la tabla, no asi los demas que estan hacia arriba.

porfavor ayuda....
bien, me confundi un poco, prueba a ponerle los corchetes a cada uno de los campos del formulario, de ese modo, recibiras un array con las notas de cada alumno, nose si me explico...

de ese modo recibiras algo asi:

$_POST['rbd'][0]
$_POST['rutalumno'][0]
...
$_POST['rbd'][n]


espero que lo entiendas, sino, dimelo y amplio el ejemplo :)
  #7 (permalink)  
Antiguo 16/09/2008, 16:15
 
Fecha de Ingreso: abril-2008
Mensajes: 14
Antigüedad: 16 años
Puntos: 0
Respuesta: Ingreso Notas a BD Varios alumnos, necesito ayuda

Cita:
Iniciado por DooBie Ver Mensaje
bien, me confundi un poco, prueba a ponerle los corchetes a cada uno de los campos del formulario, de ese modo, recibiras un array con las notas de cada alumno, nose si me explico...

de ese modo recibiras algo asi:

$_POST['rbd'][0]
$_POST['rutalumno'][0]
...
$_POST['rbd'][n]


espero que lo entiendas, sino, dimelo y amplio el ejemplo :)
hola de nuevo, no me conectaba hace tiempo por problemas de tiempo, la verdad no he podido solucionar el problema, ojala pudieras ayudarme con un ejemplo mas practico, desde ya gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:34.