Foros del Web » Programando para Internet » PHP »

Insertar varios registros al mismo tiempo

Estas en el tema de Insertar varios registros al mismo tiempo en el foro de PHP en Foros del Web. Buenas mis amigos, Estoy tratando de hacer un sistema para agregar los datos de unos productos, en un formulario muestro todos los productos que tengo ...
  #1 (permalink)  
Antiguo 03/03/2003, 14:09
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 15 años, 7 meses
Puntos: 4
Pregunta Insertar varios registros al mismo tiempo

Buenas mis amigos,

Estoy tratando de hacer un sistema para agregar los datos de unos productos, en un formulario muestro todos los productos que tengo en mi tabla de productos y junto a ellos pongo un checkbox:
<input type=checkbox name=IDProducto value=<?php echo$row->IDProducto;?>>
Junto a este tengo que grabajar otros datos como la fecha, cantidad y meses de pago.

Con esto no tengo problema , pero cuando envio todos estos datos al insert no he encontrado la forma de que me grabe cada uno de los productos que he seleccionado , en otras palabras que me haga un INSERT por cada uno de los Productos seleccionados.

Gracias por su ayuda,
Saludos
jars.
  #2 (permalink)  
Antiguo 03/03/2003, 14:30
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

Primero, tienes que ser capaz de recoger los valores de los checkbox en un arrary. Para eso:
Código PHP:
<input type="checkbox" name="IDProducto[]" value="<?php echo$row->IDProducto;?>">
(acostumbrate a poner las comillas a los valores de los atributos HTML, asi evitaras disgustos). Con IDProducto[] has conseguido que en la pagina destino se cree un array IDProducto con tantos elementos como checkboxes marcados y el valor de cada elemento sera el value del checkbox.

Luego queda la parte del insert. Solo tendrias que recorrer el array con foreach y realizar dentro el insert de cada producto. Como no se exactamente como quieres hacer el insert, te lo dejo como ejercicio ;).

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 03/03/2003, 15:47
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 15 años, 7 meses
Puntos: 4
Hola Josemi,

Gracias por tu respuestas, bueno con respecto a las comillas (") siempre las uso pero por la urgencia del caso pues no lo hice pero gracias por la observacion.

Bueno ya lo tengo hecho de esa forma pero tengo problemas ya que para que me fucione tengo seleccionar desde el primero ya que si selecciono desde el segundo en adelante no me funciona y aque el indice toma el valor del ID aqui te pongo el ejemplo de lo que hago:

---- from.php ------
<form method="POST" action="visualizar.php">
<input type="checkbox" name="ID[]" value="<?php echo$row->IDProducto;?>">
<input type="text" name="monto[]" size="8" class="datos">
<select name="mes[]" size="1" class="lista">
<option value="12">12 meses</option>
<option value="6">6 meses</option>
<option value="3">3 meses</option>
</select>
</form>
----------- end form.php --------------

------ visualizar.php ------------------
for($i=0;$i<=25;$i++){
if($cantidad[$i] !="")
{
echo $i."<br>";
echo $ID[$i-1]."-".$cantidad[$i]." ".$a[$i]."-".$m[$i]."-".$d[$i]." ".$mes[$i]."<br>";
}
}

----------- end visualizar.php ----------------

Espero sus comentarios,
Salu2
Jars
  #4 (permalink)  
Antiguo 03/03/2003, 15:50
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 15 años, 7 meses
Puntos: 4
Perdon.. habia un error en visualizar.php, este es el correcto:

for($i=0;$i<=25;$i++){
if($cantidad[$i] !="")
{
echo $ID[$i]."-".$cantidad[$i]." ".$a[$i]."-".$m[$i]."-".$d[$i]." ".$mes[$i]."<br>";
}
}

Salu2
Jars.
  #5 (permalink)  
Antiguo 04/03/2003, 15:12
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Vamos a modificar un poco el codigo:
---- from.php ------
Código PHP:
<form method="POST" action="visualizar.php">
<input type="checkbox" name="ID[]" value="<?php echo $row->IDProducto;?>">
<input type="text" name="monto[<?php echo $row->IDProducto;?>]" size="8" class="datos">
<select name="mes[<?php echo $row->IDProducto;?>]" size="1" class="lista">
<option value="12">12 meses</option>
<option value="6">6 meses</option>
<option value="3">3 meses</option>
</select>
</form>
----------- end form.php --------------
Al poner <?php echo $row->IDProducto;?> como indice de los otros array, podras usar los valores de ID[] como indice de los otros array:
------ visualizar.php ------------------
Código PHP:
foreach ($ID as $indice) {
  if(
$cantidad[$indice] !="") {
    echo 
$indice."<br>";
    echo 
$indice."-".$cantidad[$indice]." ".$a[$indice]."-".$m[$indice]."-".$d[$indice]." ".$mes[$indice]."<br>";
  }

----------- end visualizar.php---------------
Recorremos el array ID con foreach (mira en el manual) y para cada uno de sus valores (los indeces de los productos) lo usamos como indice en los otros array.

Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 05/03/2003, 20:49
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 15 años, 7 meses
Puntos: 4
Como siempre he dicho!!!.. el que sabe... sabe ... gracias por tu ayuda.. Josemi

Salu2
Jorge
  #7 (permalink)  
Antiguo 05/03/2004, 22:20
 
Fecha de Ingreso: marzo-2004
Mensajes: 6
Antigüedad: 13 años, 9 meses
Puntos: 0
hola
  #8 (permalink)  
Antiguo 05/03/2004, 22:22
 
Fecha de Ingreso: marzo-2004
Mensajes: 6
Antigüedad: 13 años, 9 meses
Puntos: 0
yo tengo el mismo problema, tengo que insertar en una base de datos los valores del checkbox seleccionados ??? no estan viajando los valores del checkbox
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.
Tema Cerrado




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