Foros del Web » Programando para Internet » PHP »

Pasar por array el contenido de input text y guardar a mysql

Estas en el tema de Pasar por array el contenido de input text y guardar a mysql en el foro de PHP en Foros del Web. Estimados, Me encuentro haciendo una aplicación web para guardar calificaciones de una serie de estudiantes, y mi problema se presenta cuando hay que guardar dichas ...
  #1 (permalink)  
Antiguo 27/06/2010, 13:52
 
Fecha de Ingreso: agosto-2009
Mensajes: 7
Antigüedad: 15 años, 3 meses
Puntos: 0
Pasar por array el contenido de input text y guardar a mysql

Estimados,

Me encuentro haciendo una aplicación web para guardar calificaciones de una serie de estudiantes, y mi problema se presenta cuando hay que guardar dichas notas, puesto que los cuadros de texto donde se colocan éstas, se crean dinámicamente y de acuerdo a la cantidad de estudiantes que existan.

1. CÓDIGO QUE CREAR LOS INPUTS TEXT DONDE SE INGRESAN LAS NOTAS

<?php
require("config/config.inc.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<?php
$rows=mysql_query("SELECT * FROM calificaciones ORDER BY estudiante ASC");
echo mysql_error();
?>
<form action="eli.php" method="post" name="form1" id="form1">
<table>
<tr>
<th>
Estudiante
</th>
<th>
C1
</th>
</tr>
<?php
while($row=mysql_fetch_array($rows)){
?>
<tr>
<td><?php echo $row['estudiante'];?></td>
<td><input type="text" name="c1[]" id="c1" value="" maxlength="3" style="font-family:Verdana, Geneva, sans-serif; font-size: 7pt; text-align: center" size="3" /></td>
</tr>
<?php
}
?>
<tr>
<td colspan="2">
<input type="submit" value="Grabar" />
</td>
</tr>
</table>
</form>
</body>
</html>

Lo que requiero es que me expliquen cómo pasar eso a mysql.

Sé que se hace mediante INSERT INTO *** VALUES (...), pero el problema está en que al intentar guardar en la base de datos, no me guardar absolutamente nada.

La clave primaria de mysql es el ID de cada uno de los estudiantes.

Espero puedan ayudarme, de antemano, muchas gracias.
  #2 (permalink)  
Antiguo 27/06/2010, 15:44
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Pasar por array el contenido de input text y guardar a mysql

yo hic algo parecido a esto tenia una tabla auxiliar para las notas con la identificacion del estudiante y al igual que tu tenia que crear las notas dinamicamente por el numero de estudiantes de cada seccion yo lo trabaje las notas como un arreglo y no hacia un insert into sino que hacia un update, ya que en la tabla que tenia tenia las materias por un codigo la identificacion del estudiamte y la seccion entonces hacia algo asi
Código PHP:
for($i=0;$i<$cantidad;$i++)
{
    
mysql_query("update notas set nota='$nota[$i]',porcentaje='$porcentaje',notaporcentaje='$notaprocentaje[$i]' where materia='$materia' and seccion='$seccion' and id_estudiante='$id_estudiante[$i]'") or die ("error notas");

no se si es lo que buscas pero yo lo hice asi
  #3 (permalink)  
Antiguo 27/06/2010, 15:45
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Pasar por array el contenido de input text y guardar a mysql

Prueba este codigo solo para ver su funcionamiento:
Lee los comentarios

Código PHP:

$rows=mysql_query("SELECT * FROM calificaciones ORDER BY estudiante ASC");
?>
<form action="" method="post" name="form1" id="form1">
<?php

while($row=mysql_fetch_array($rows)){
//si el nombre del estudiante no tiene un punto funcionara
//con esto unes el nombre del estudiante para usarlo como variable
echo $name=str_replace(" ","_",$row['estudiante']);
?>
<input type="text" name="<?=$name?>" id="c1" value="" maxlength="3" size="3" /><br />
<?php
if($_POST[$name] != ""){
//aqui mostramos el nombre del estudiante al que le daremos la calificacion
//cuya id seria $row['id']  
echo "<li>Calificacion para: "$row['estudiante']." id: ".$row['id']."<br />";
}
}
?>
<input type="submit" value="Grabar" />
</form>
Verifica si tu campo id se llama id => $row['id'],
si no cambiale el nombre a $row['id']
  #4 (permalink)  
Antiguo 29/06/2010, 11:52
 
Fecha de Ingreso: agosto-2009
Mensajes: 7
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Pasar por array el contenido de input text y guardar a mysql

Probé el código que me sugieres, pero no me queda muy claro su funcionamiento.
El asunto es que me arrojó la lista de estudiantes, todos con un "_" en vez del espacio, eso lo entiendo por la función "str_replace" que aplicaste, pero la línea:
echo "<li>Calificacion para: ". $row['estudiante']." id: ".$row['id']."<br />";
no hizo nada.

Una pregunta, se puede usar el ID como variable en vez del nombre del estudiante?
  #5 (permalink)  
Antiguo 29/06/2010, 11:57
 
Fecha de Ingreso: agosto-2009
Mensajes: 7
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Pasar por array el contenido de input text y guardar a mysql

Esta modificación le hice yo, lo cual al imprimirlo en otra página con la función print_r($_POST) me muestra el resultado como debe ser, pero la duda me surge en cómo le digo al archivo que inserta los datos a mysql que el nombre real del campo es c1 y no el ID del estudiante.
Código PHP:
Ver original
  1. <?php
  2. require("config/config.inc.php");
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. <title>Documento sin título</title>
  9. </head>
  10.  
  11. <body>
  12. <?php
  13. $rows=mysql_query("SELECT * FROM calificaciones ORDER BY estudiante ASC");
  14. echo mysql_error();
  15. ?>
  16. <form action="action_c1.php" method="post" name="form1" id="form1">
  17.     <table>
  18.         <tr>
  19.             <th>
  20.                 Estudiante
  21.             </th>
  22.             <th>
  23.                 C1
  24.             </th>
  25.         </tr>
  26.         <?php
  27.         while($row=mysql_fetch_array($rows)){
  28.             $identifier=$row['ID'];
  29.         ?>
  30.         <tr>
  31.             <td><?php echo $row['estudiante'];?></td>
  32.             <td><input type="text" name="<?php echo $identifier ?>" id="c1" value="" maxlength="3" style="font-family:Verdana, Geneva, sans-serif; font-size: 7pt; text-align: center" size="3" /></td>
  33.         </tr>
  34.         <?php
  35.         }
  36.         ?>
  37.         <tr>
  38.             <td colspan="2">
  39.                 <input type="submit" value="Grabar" />
  40.             </td>
  41.         </tr>
  42.     </table>
  43. </form>
  44. </body>
  45. </html>

Etiquetas: contenido, input, mysql, pasar, txt
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 14:14.