Foros del Web » Programando para Internet » PHP »

problema para insertar registros multiples

Estas en el tema de problema para insertar registros multiples en el foro de PHP en Foros del Web. bueno aclaro que soy nuevo y e cometido muchos errores en los temas que e colocado,tengo una consulta que la e realizado ya pero no ...
  #1 (permalink)  
Antiguo 18/07/2012, 09:55
Avatar de trofserpiente  
Fecha de Ingreso: julio-2012
Ubicación: Lerida
Mensajes: 220
Antigüedad: 11 años, 9 meses
Puntos: 1
Exclamación problema para insertar registros multiples

bueno aclaro que soy nuevo y e cometido muchos errores en los temas que e colocado,tengo una consulta que la e realizado ya pero no logro darme a entender.

lo que pasa es que tengo una consulta la cual me arroja todos los datos de los alumnos y muestro todos los resultados por medio de una tabla aprobechando el bucle whiley dentro también pongo unos input para enviar el id del alumno y la nota que le corresponde, pero al enviar los datos solo me envía los del ultimo registro.

y para empeorar no se como insertar todos los registros de una vez este es el código que tengo pero estoy seguro que esta mal.

Código PHP:
<?php
$conexA
mysql_connect("localhost","root","malu1101")//conexión al servidor 
    
or die("No se pudo realizar la conexion"); 
$conexB=mysql_select_db("pruebas",$conexA)//elegir la base de datos 
    
or die("ERROR con la base de datos");
    
if(isset(
$_POST['a'])){    
$a=$_POST['a'];

$consulta="SELECT* FROM alumnos WHERE grado='".$a."'";
$resultado=mysql_query($consulta,$conexA);
 
echo 
'<table border="1">';
echo 
'<tr>';
echo 
'<th>'.'nombres'.'</th>';
echo 
'<th>'.'grado'.'</th>';
echo 
'<th>'.'Nota'.'</th>';
echo 
'<tr>';

while(
$fila=mysql_fetch_array($resultado))
{
echo 
'</tr>';
echo 
'<th>'.$fila['nombres'].'</th>';
echo 
'<th>'.$fila['grado'].'</th>';
echo 
'<input name="id_estu" type="hidden" value="'.$fila['id'].'" />';
?>
<form action="ingresar.php" method="post">
<td><input type="text" name="nota" /></td>

<?php ?>
<input type="submit" value="aceptar"/>
</form>
</table>
<?php ?>
?>
este es el código con el que verifico que es lo que estoy recibiendo

Código PHP:
$nota=$_POST['nota']; 
$id=$_POST['id_estu']; 

echo 
$nota
echo 
$id
gracias
__________________
Luis Alfonso Cruz Valbuena
[email protected]

Última edición por trofserpiente; 18/07/2012 a las 10:18
  #2 (permalink)  
Antiguo 18/07/2012, 12:32
Avatar de lordglazoon  
Fecha de Ingreso: julio-2011
Mensajes: 54
Antigüedad: 12 años, 9 meses
Puntos: 8
Respuesta: problema para insertar registros multiples

no es q te este mandando solo el utimo, como se llaman igual y estas tomando solo uno te muestra solo uno

una opcion es declaralo como un array o puedes hacer un contador ponerle como nombre al input el contador y luego con un for hasta contador leer los input
  #3 (permalink)  
Antiguo 18/07/2012, 13:25
Avatar de Nopal_Studio  
Fecha de Ingreso: julio-2012
Ubicación: DF
Mensajes: 42
Antigüedad: 11 años, 9 meses
Puntos: 10
Respuesta: problema para insertar registros multiples

Hola, bueno creo que la solucion seria:

Código PHP:
Ver original
  1. $consulta="SELECT * FROM alumnos WHERE grado = '".$a."'";
  2. $resultado=mysql_query($consulta,$conexA);
  3.  
  4. <form action="ingresar.php" method="post">
  5.  
  6. echo '<table border="1">';
  7. echo '<tr>';
  8. echo '<th>'.'nombres'.'</th>';
  9. echo '<th>'.'grado'.'</th>';
  10. echo '<th>'.'Nota'.'</th>';
  11. echo '<tr>';
  12.  
  13. while($fila=mysql_fetch_array($resultado))
  14. {
  15. echo '</tr>';
  16. echo '<th>'.$fila['nombres'].'</th>';
  17. echo '<th>'.$fila['grado'].'</th>';
  18. echo '<input name="id_estu" type="hidden" value="'.$fila['id'].'" />';
  19.  
  20. ?>
  21. <td><input type="text" name="nota" /></td>
  22. <input type="submit" value="aceptar"/>
  23. <?php } ?>
  24. </form>
  25. </table>
  26. <?php } ?>

espero que te haya sido de ayuda, éxito.
  #4 (permalink)  
Antiguo 18/07/2012, 14:42
Avatar de trofserpiente  
Fecha de Ingreso: julio-2012
Ubicación: Lerida
Mensajes: 220
Antigüedad: 11 años, 9 meses
Puntos: 1
Exclamación Respuesta: problema para insertar registros multiples

Cita:
Iniciado por Nopal_Studio Ver Mensaje
Hola, bueno creo que la solucion seria:

Código PHP:
Ver original
  1. $consulta="SELECT * FROM alumnos WHERE grado = '".$a."'";
  2. $resultado=mysql_query($consulta,$conexA);
  3.  
  4. <form action="ingresar.php" method="post">
  5.  
  6. echo '<table border="1">';
  7. echo '<tr>';
  8. echo '<th>'.'nombres'.'</th>';
  9. echo '<th>'.'grado'.'</th>';
  10. echo '<th>'.'Nota'.'</th>';
  11. echo '<tr>';
  12.  
  13. while($fila=mysql_fetch_array($resultado))
  14. {
  15. echo '</tr>';
  16. echo '<th>'.$fila['nombres'].'</th>';
  17. echo '<th>'.$fila['grado'].'</th>';
  18. echo '<input name="id_estu" type="hidden" value="'.$fila['id'].'" />';
  19.  
  20. ?>
  21. <td><input type="text" name="nota" /></td>
  22. <input type="submit" value="aceptar"/>
  23. <?php } ?>
  24. </form>
  25. </table>
  26. <?php } ?>

espero que te haya sido de ayuda, éxito.

bueno lo que pasa es que sigue lo mismo supongo que el problema esta a la hora de recibir y no se como recibirlo pero ustedes son los que saben sobre el tema lordglazoon como hago para recibirlo entonces
__________________
Luis Alfonso Cruz Valbuena
[email protected]
  #5 (permalink)  
Antiguo 18/07/2012, 23:48
Avatar de Nopal_Studio  
Fecha de Ingreso: julio-2012
Ubicación: DF
Mensajes: 42
Antigüedad: 11 años, 9 meses
Puntos: 10
Mensaje Respuesta: problema para insertar registros multiples

Entiendo trofserpiente, bueno entonces para recibir tus variables en otra pagina, debes hacer lo siguiente:

Código PHP:
Ver original
  1. <?php
  2. $conexA= mysql_connect("localhost","root","malu1101")//conexión al servidor
  3.     or die("No se pudo realizar la conexion");
  4. $conexB=mysql_select_db("pruebas",$conexA)//elegir la base de datos
  5.     or die("ERROR con la base de datos");
  6.    
  7. if(isset($_POST['a'])){    
  8. $a=$_POST['a'];
  9.  
  10. $consulta="SELECT* FROM alumnos WHERE grado= $a";
  11. $resultado=mysql_query($consulta,$conexA);
  12.  
  13. echo '<form action="ingresar.php" method="POST">
  14. <table border="1">
  15. <tr>
  16. <th>Nombre</th>
  17. <th>Grado</th>
  18. <th>Nota</th>
  19. </tr>
  20. <tr>';
  21. while($fila=mysql_fetch_array($resultado))
  22. {
  23. echo '<td>'.$fila['nombres'].'</td>
  24.        <td>'.$fila['grado'].'
  25.        <input name="id_estu" id="id_estu" type="hidden" value= "'.$fila['id'].'"  />
  26.        </td>
  27.        <td><input type="text" name="nota" id="nota" /></td>';
  28. } //while ?>
  29. <input type="submit" value="aceptar"/>
  30. </table>
  31. </form>
  32. <?php } //if ?>
  33. ?>

Ahora para recibirlo lo haces de la siguiente forma en la pagina destino ingresar.php :

Código PHP:
Ver original
  1. $nota = $_POST['nota'];
  2. $id = $_POST['id_estu'];
  3.  
  4. echo $nota;
  5. echo $id;
lo que yo creo que te estaba fallando es que:
  • No tenias el FORM dentro de la tabla
  • Es recomendable meter el ID a los input

Es momento de probarlo mi amigo, te deseo éxito...
  #6 (permalink)  
Antiguo 19/07/2012, 13:33
Avatar de trofserpiente  
Fecha de Ingreso: julio-2012
Ubicación: Lerida
Mensajes: 220
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: problema para insertar registros multiples

gracias a todos ya pude resolver el problema que tenia gracias,y el que le interese la solución me avisa
__________________
Luis Alfonso Cruz Valbuena
[email protected]
  #7 (permalink)  
Antiguo 19/07/2012, 15:30
Avatar de Nopal_Studio  
Fecha de Ingreso: julio-2012
Ubicación: DF
Mensajes: 42
Antigüedad: 11 años, 9 meses
Puntos: 10
Respuesta: problema para insertar registros multiples

seria interesante que pusieras la solución, para compartir con el foro (aunque no te pidan amigo). Si pude ayudarte please karma...
  #8 (permalink)  
Antiguo 19/07/2012, 18:28
Avatar de trofserpiente  
Fecha de Ingreso: julio-2012
Ubicación: Lerida
Mensajes: 220
Antigüedad: 11 años, 9 meses
Puntos: 1
Exclamación Respuesta: problema para insertar registros multiples

Cita:
Iniciado por Nopal_Studio Ver Mensaje
seria interesante que pusieras la solución, para compartir con el foro (aunque no te pidan amigo). Si pude ayudarte please karma...
esta es la repuesta ojala les ayude a alguien


Código PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>

<?php 
$conexA
mysql_connect("localhost","root","malu1101")//conexión al servidor 
    
or die("No se pudo realizar la conexion"); 
$conexB=mysql_select_db("pruebas",$conexA)//elegir la base de datos 
    
or die("ERROR con la base de datos");
?>
<?php    
if(isset($_POST['a'])){    
$a=$_POST['a'];

$consulta="SELECT* FROM alumnos WHERE grado='".$a."'";
$resultado=mysql_query($consulta,$conexA);
?>
 
<form action="ingresar.php" method="post">
 <table border="1">
 <tr>
 <th>nombres</th>
 <th>grado</th>
 <th>Nota1</th>
 <th>Nota2</th>
 <tr>
 
<?php
while($fila=mysql_fetch_array($resultado)){
?>
 </tr>';
 <th><?php echo $fila['nombres']; ?></th>
 <th><?php echo $fila['grado']; ?></th>
 <input name="id_estu[]" type="hidden" value="<?php echo $fila['id'];?>"/>
 <td><input type="text" name="nota1[]" /></td>
 <td><input type="text" name="nota2[]" /></td>

<?php }; ?>
<tr>
 <td colspan="0"><input type="submit" value="aceptar"/></td>
 </table>
</tr>

<?php ?>
</form>
</body>
</html>
y luego lo recibo en otro archivo de la siguiente manera

Código PHP:
<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>
<?php
$conexA
mysql_connect("localhost","root","malu1101")//conexión al servidor 
    
or die("No se pudo realizar la conexion"); 
$conexB=mysql_select_db("pruebas",$conexA)//elegir la base de datos 
    
or die("ERROR con la base de datos");
    
$id_estu=$_POST['id_estu'];
$nota1=$_POST['nota1'];    
$nota2=$_POST['nota2'];
$contar=0;

if(
is_array($id_estu))
{
for(
$i=0;$i<count($id_estu);$i++){
    
$consulta=mysql_query("INSERT INTO notas(id,nota1,nota2)values('".$id_estu[$i]."','".$nota1[$i]."','".$nota2[$i]."')");
    
$contar++;
}
echo 
"se a guardado ".$contar;    
}
else{echo 
"no se a podido guardar";}

    
?>
</head>

<body>
</body>
</html>
:apla uso:
__________________
Luis Alfonso Cruz Valbuena
[email protected]

Etiquetas: dato, multiples, mysql, registro, sql, tabla
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:52.