Foros del Web » Programando para Internet » PHP »

inserción multiple

Estas en el tema de inserción multiple en el foro de PHP en Foros del Web. Hola que tal, Bueno les explico brevemente lo que no he podido hacer.. tengo un formulario donde el usuario hace pedidos.. 1. se le pide ...
  #1 (permalink)  
Antiguo 23/07/2006, 22:34
 
Fecha de Ingreso: febrero-2001
Mensajes: 149
Antigüedad: 16 años, 10 meses
Puntos: 0
inserción multiple

Hola que tal,

Bueno les explico brevemente lo que no he podido hacer..

tengo un formulario donde el usuario hace pedidos..

1. se le pide al usuario la cantidad de productos que va solicitar.

2. Enseguida hago un ciclo for para generar los campos a llenar

Por ejemplo 2 productos

nombre de los campos

nombre1 descripcion1 precio1
nombre2 descripcion2 precio2

3. recojo los valores de cada uno de los formularios

4. trato de hacer las 2 inserciones con un for...

pero dentro de Values del insert no puedo hacer dinamico para que guarde cada uno de sus correspondientes datos

lo que quiero es que en la primera vuelta del for.. me guarde

values('$nombre1','$descripcion1','$precio1')

y en la segunda

values('$nombre2','$descripcion2','$precio2')

intente de varias formas pero no he tenido buenos resultados..

su ayuda sera de mucha importancia

saludos
__________________
Mensajes Anonimos
www.mensajesanonimos.com
  #2 (permalink)  
Antiguo 23/07/2006, 23:25
Avatar de MWNS  
Fecha de Ingreso: julio-2003
Mensajes: 528
Antigüedad: 14 años, 4 meses
Puntos: 2
hola hola

mira, de este modo creo que podrias hacer los insert que necesitas... creo que te serviria

Código PHP:
//con esto haces que dentro de $GA en cada una de sus posiciones se creen
//tres arrays internos (esto es tema sobre arrays multidimensionales combinados)
// n guarda el nombre, d la descripcion y p el precio, estos tres datos son
//guardados al mismo tiempo en cada una de las pociciones que tome $GA[$i]
for ($i=0;$i<$_GET[cantidadCampos];$i++)
{
$GA[$i] = array("n" => $nombre[$i], "d" => $descripcion[$i], "p" => $precio[$i]);}
        
//lo que haces aca es recorrer una a una las posiciones de $GA y consultar su contenido
//como en $GA[$i] hay tres datos guardados lo que haces es pasarlo como valores al insert
//entonces para este caso $GA[0][n] tendria por ej. Mario, y $GA[1][n] tendria pepe
//lo mismo con $GA[0]['p'] tendria 10.000 y $GA[1]['p'] tendria por ej 15.000
for($i=0;$i<count($GV);$i++)
{
mysql_query("insert into tabla (nombre, descripcion, precio) values ("$GA[$i]['n']","$GA[$i]['d']","$GA[$i]['p']")",$link);} 
se "veria" algo asi:

$GA[0] : [ [mario][rojo][10000] ]

$GA[1] : [ [pepe] [gris] [15000] ]

$GA[2] : [ [carlitos] [negro] [5000] ]

bueno, aunque no lo he probado y no se si funcionaria creo que seria una forma de que implementaras lo que necesitas, me cuentas como te va con el asunto, un saludo
__________________
MWNS
Mario Navas
http://marionavas.com

Última edición por MWNS; 24/07/2006 a las 06:48
  #3 (permalink)  
Antiguo 23/07/2006, 23:45
 
Fecha de Ingreso: febrero-2001
Mensajes: 149
Antigüedad: 16 años, 10 meses
Puntos: 0
Muchas gracias Mario, voy a intentar de esa forma que me dices !

espero me resuelva el problemas,lo pruebo y despues te cuento..
__________________
Mensajes Anonimos
www.mensajesanonimos.com
  #4 (permalink)  
Antiguo 24/07/2006, 00:41
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
la opción que yo elegiría es generar directamente los arrays cuando se envía el formulario. Esto lo consigues poniendo de nombre a los campos name="nombre[]", name="descripcion[]", name="precio[]".
Código PHP:
for($i 1$i <= $cantidad$i++){// $cantidad es la cantidad de campos que se deben generar
    
echo 'Nombre <input type="text" name="nombre[]" /><br />';
    echo 
'Descripción <input type="text" name="descripcion[]" /><br />';
    echo 
'Precio <input type="text" name="precio[]" /><br />';

Luego, para procesar esos datos, recorres los arrays normalmente:
Código PHP:
foreach($_POST['nombre'] as $clave=>$valor){
    echo 
"Insertar:<br />";
    echo 
'Nombre:'.$valor.'<br />'// También sería $_POST['nombre'][$clave]
    
echo 'Descripcion:'.$_POST['descripcion'][$clave].'<br />';
    echo 
'Precio:'.$_POST['precio'][$clave].'<br />';
    echo 
'<hr />';

Saludos
  #5 (permalink)  
Antiguo 24/07/2006, 12:53
 
Fecha de Ingreso: febrero-2001
Mensajes: 149
Antigüedad: 16 años, 10 meses
Puntos: 0
Muchas gracias a los dos, con la ayuda de ambos ya logre terminar, ambas opciones son correctas aunque la segunda es mas sencilla..

Saludos y gracias nuevamente por su ayuda
__________________
Mensajes Anonimos
www.mensajesanonimos.com
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 07:04.