Foros del Web » Programando para Internet » PHP »

Insertar varios registros a la vez

Estas en el tema de Insertar varios registros a la vez en el foro de PHP en Foros del Web. Hola amigos del foro, espero me puedan ayudar con el sgte, script. He buscado por todas partes y he encontrado varios pero ninguno me sale, ...
  #1 (permalink)  
Antiguo 31/08/2008, 03:25
 
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 303
Antigüedad: 18 años, 7 meses
Puntos: 0
Insertar varios registros a la vez

Hola amigos del foro, espero me puedan ayudar con el sgte, script. He buscado por todas partes y he encontrado varios pero ninguno me sale, ojala me puedan ayudar. Gracias de antemano.

Tengo una consulta que lo cargo en un formulario. Esta consulta me genera n filas. por ejemplo:

codigo| nombre | edad | pais | aprobado
1 | carlos
2 | pepe
3 | jose

donde edad pais son cajas de texto para llenar y aprobado es un checkbox

la idea es seleccionar y llenar los datos de algunas filas y registrar a una nueva tabla.


genero la consulta y en cada caja de texto en name le pongo asi:

edad[], pais[], aprobado []

pero luego nesecito el script para insertarloa una tabla. encontre y probe esto:
-------------------------------

<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>

y en visualizar.php

foreach ($ID as $indice) {
if($cantidad[$indice] !="") {
echo $indice."<br>";
echo $indice."-".$cantidad[$indice]." ".$a[$indice]."-".$m[$indice]."-".$d[$indice]." ".$mes[$indice]."<br>";
}
}


es esta parte la que no me sale. algo falta en el script. no entiendo de dodne sale $cantidad y no se si $ID antes recibe los valroes de la sgte manera:

$ID = array($_POST['id'])
</form>


Por favor alguien me puede ayudar, se lo agradesco mucho que tengo horas en esto!!!! gracias de antemano. un fuerte abrazo.
__________________
DESARROLLO Y DISEÑO DE PAGINAS WEB, HOSTING, DOMINIO, TRUJILLO PERU
Diseño web
Trujillo - Perú
  #2 (permalink)  
Antiguo 31/08/2008, 09:02
Avatar de luinux22  
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Insertar varios registros a la vez

El script que encontraste utiliza objetos que seguramente en sus metodos esta la información que desconoces.-

creo q no deberia usar array distintos sino iguales es decir algo asi:

$datos["ID"]["edad"]
$datos["ID"]["pais"]
$datos["ID"]["aprobado"]

Esto por cada fila de la lista.-
  #3 (permalink)  
Antiguo 31/08/2008, 09:07
 
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 303
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Insertar varios registros a la vez

Gracias amigo, probare esa solución cualquier cosa le estare comunicando.
__________________
DESARROLLO Y DISEÑO DE PAGINAS WEB, HOSTING, DOMINIO, TRUJILLO PERU
Diseño web
Trujillo - Perú
  #4 (permalink)  
Antiguo 06/09/2008, 04:14
 
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 303
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Insertar varios registros a la vez

Hola, bueno de vuelta al problema (lo habia dejado en stand by), resulta que he conseguido insertar los registros con el sgte script:
Código PHP:
<form name="form1" id="form1">
 
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="2">
<tr class="fondonegro">
<td width="5%" align="center">N&ordm;</td>
<td width="13%" align="center">MARCA</td>
<td width="15%" align="center">MODELO</td>
<td width="19%" align="center">CODIGO</td>
<td width="25%" align="center">COLOR</td>
<td width="7%" align="center">TALLA</td>
<td width="7%" align="center">LADOS IZQ. </td>
<td width="7%" align="center">LADOS DER. </td>
<td width="2%" align="center">&nbsp;</td>
</tr>
 
<?php 
 
 
//funcion que me permite buscar productos d ela bd, hasta aqui normal
 
$rs$producto->producto_buscar($_REQUEST['codigo'],$_REQUEST['modelo']); 
if(
$rs)
{
$j=1;
 
//listo los productos
while($campo =mysql_fetch_array($rs)) { 
 
?>
<tr bgcolor="#F0F0F0" >
<td align="center"><?php echo $j?></td>
<td align="center"><?php echo strtoupper($producto->devuelve_marca($campo['mar_id'])); ?></td>
<td align="center"><?php echo strtoupper($producto->devuelve_modelo($campo['mod_id'])); ?></td>
<td align="center"><?php echo strtoupper($campo['prod_codigo']) ?></td>
<td align="center"><?php echo strtoupper($campo['prod_color']) ?></td>
 
<?php //aqui es donde agrego cajas de texto a cada fila, por ejemplo talla y le asigno la variable j de la suma del bucle para generar, talla1, talla2,... igual con ladoizquiero y ladoderecho. estas cajas son als que llenare y mediante post las insertare a otra tabla, juntos con los registros que recupere en la consulta ?>
 
<td align="center"><input name="talla<?php echo $j;?>" id="talla<?php echo $j;?>" type="text" size="10" ></td>
<td align="center"><input name="ladoizquierdo<?php echo $j;?>" type="text" size="7"></td>
<td align="center"><input name="ladoderecho<?php echo $j;?>" type="text" size="7"></td>
 
<?php  //aqui genero el array campos[] en el checkbox y en su propiedad value agrego los valores que insertare en la consulta ?>
 
<td align="center"><input name="campos[]" type="checkbox" id="campos[]" value="<?php echo $campo['prod_id'];?>,<?php echo date('y-m-d');?>,0,<?php echo $_SESSION['area'];?>,<?php echo $_POST['talla'.$j.''];?>,<?php echo $_POST['ladoizquierdo'.$j.''];?>,<?php echo $_POST['ladoderecho'.$j.''];?>" ></td>
</tr>
<?php 
$j
=$j+1;

?>
<tr>
<td colspan="9">&nbsp;</td>
</tr>
<tr>
<td colspan="9"><span class="enfasis">
<input name="Submit" type="button" class="btn" onClick="nuevo();" value="Registrar Seleccionados">
</span></td>
</tr>
</table>

Hasta alli normal, he listado una consulta y en cada fila he agregado una caja de texto, que luego llenare y segun los checkboz que seleccione los insertare. listo.

si en este momento veo el codigo html, vere que en el checkbox habra un array asi:

<input name="campos[]" type="checkbox" id="campos[]" value="149,08-09-06,0,1, , , " >

logicamente que en 149,08-09-06,0,1, , , esos espacios entre las comas le pertenecen a las cajas de texto que genere y que no tienen valor aun. ahora si yo lleno als cajas de texto y envio pro post eso datos,envio por post esos datos, insertare los camos en blanco, porque cargaron vacios antes del post.

La pregunta es, como puedo hacer que los valores que inserte en la caja de texto se agrege en las comas vacias del array antes de enviar el post????

intente con javascript peor no tuve suerte. alguien porfavor me puede dar una mano. quizas no es la forma y exisiten otras, profavor una ayuda. solo quiero insertar e una tabla los datos de la caja de texto que se ingresan y se seleccionan con un checbox y array.


espero que me ayuden. Gracias de antemano amigos del foro.
__________________
DESARROLLO Y DISEÑO DE PAGINAS WEB, HOSTING, DOMINIO, TRUJILLO PERU
Diseño web
Trujillo - Perú

Última edición por andresweb; 06/09/2008 a las 04:43
  #5 (permalink)  
Antiguo 06/09/2008, 04:26
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Insertar varios registros a la vez

amigo, disculpa, trata de ser mas ordenado con el código, si deseas ayuda, da las lineas básicas, para poder entender mejor el problema, en vez de interpretar toodo.

usa las etiqueras PHP, CODE de el editor avanzado... no lo tomes a mal, solo deseamos ayudar
  #6 (permalink)  
Antiguo 06/09/2008, 04:31
 
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 303
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Insertar varios registros a la vez

Si gracias, disculpa, hasta yo mismo me maree luego que lo vi publicado. Tendre mas cuidado. gracias amigo.
__________________
DESARROLLO Y DISEÑO DE PAGINAS WEB, HOSTING, DOMINIO, TRUJILLO PERU
Diseño web
Trujillo - Perú
  #7 (permalink)  
Antiguo 06/09/2008, 04:36
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Insertar varios registros a la vez

hey!!, editalo, para poder ayudarte !!
  #8 (permalink)  
Antiguo 07/09/2008, 17:29
 
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 303
Antigüedad: 18 años, 7 meses
Puntos: 0
Sonrisa Respuesta: Insertar varios registros a la vez

Al fin logre insertar varios registros a la vez, despues de varias horas revisando scripts y estudiando arrays, encontre la solucion, aqui les dejo el ejemplo para alguien que lo nesecite:

Código PHP:
 
<?php 
 
//si no envio el formulario muestro los campos
if (!isset($_POST['id']))
{
 
?>
<form name="form1" method="post" action="prueba.php">
<input type="hidden" value="1" name="id" />
<?php
$i
=0;
for(
$i=1;$i<=5;$i++){?>
 <input type="text" name="articulos[<?php echo $i?>]" value=""/>
 <input type="text" name="serie[<?php echo $i?>]" value="" />
 <input type="checkbox" name="envio[<?php echo $i?>]" value="<?php echo $campo[cod_articulo]; ?>" /><br> 
<?php  }?>
<input type="submit" value="enviar" />
<input type="text" value="<?php echo $i-1//dato que ems irve para saber cuantas filas tendra el array ?>" name="cantidad" />
</form>
<?php 
}
else
 
//si envio el formulario por post recupero os valores

{
$cantidad=$_REQUEST['cantidad'];  //cantidad de filas que tiene mi array variable que viene del formulario
 
$datos =array(codigo=>$_POST['envio'],articulo=>$_POST['articulos'],serie=>$_POST['serie']);//creo el array $datos
 
 
//recorro el array con for deberia ser con foreach pero no he probado si alguien sabe por favor agregar

 
for($i=0;$i<=$cantidad;$i++)
 {  
  if(
$datos['articulo'][$i]!=""){// si una fila no tiene datos, no recupero

   // listo los datos del array
 
   
echo $datos['codigo'][$i];
   echo 
$datos['articulo'][$i];
   echo 
$datos['serie'][$i];
   echo 
"<br>";    
 
  
/*estos datos se pueden agregara  una funcion para insertar en una bd, ejem. en mi caso: 
 
$productos->insertar($datos['codigo'][$i],$datos['articulo'][$i],$datos['serie'][$i]);
*/
 
 

  
}
 }
?>
espero le sirva a lguien que tuvo mi problema. gracias amigos del foro.
__________________
DESARROLLO Y DISEÑO DE PAGINAS WEB, HOSTING, DOMINIO, TRUJILLO PERU
Diseño web
Trujillo - Perú
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 02:39.