PHP - como insertar multiples reguistros utilizando el insert into dentro de un foreach()

   
Vista:

como insertar multiples reguistros utilizando el insert into dentro de un foreach()

Publicado por alfonso apr421@hotmail.com (4 intervenciones) el 29/09/2011 02:53:40
hola quisiera que me ayuende el problema es que no inserto mas reguistros ecepto uno solo
ejemplo quiero insertar 3 registros, el ultimo reguistro si me lo inserta pero
los dos primeros no lo hace o es que el inser que esta dentro de mi foreach esta
mal ayuda si porfis, el codigo es el siguiente.

foreach($canastaa as $k=> $v)
{
$rs_item=mysql_query("select idproducto,precio_sugerido from producto where idproducto='$k'");

if(!$rs_item)
echo "Error SQL:".mysql_error();


$item=mysql_fetch_array($rs_item);
$idproducto=$item[0];
$pv=$item[1];
$cantidad=$v;
$sub_total=$item[1]*$v;
$sqldetall_pedido="insert into detalle_pedido values('$idproducto','$pedidos','$pv','$cantidad','$sub_total')";

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

como insertar multiples reguistros utilizando el insert into dentro de un foreach()

Publicado por xve (5522 intervenciones) el 29/09/2011 13:47:12
Hola Alfonso, donde hace el insert?? veo la variable $sqldetall_pedido pero no veo donde lo ejecutas!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como insertar multiples reguistros utilizando el insert into dentro de un foreach()

Publicado por alfonso apr421@hotmail.com (4 intervenciones) el 29/09/2011 17:53:53
gracias por la respuesta, pero como? el insert into esta dentro del foreach y debe
de hacer tantas inserciones como dure el buble, como te estaba comentando si se inserta
un solo reguistro en este caso sera el ultimo reguistro es decir si trato de
insertar 3 reguistros solo me inserta 1 solo reguistro en este caso sera el ultimo reguistro
es como si en ese mismo reguistro se chancaran a los primeros reguistros
quedando solo el ultimo reguistro.espero tu respuesta lo mas pronto posible... gracias.

//bueno si te sirve un poco de mas detalle esto es la continuacion del codigo... este no esta dentro del foreach

$rs_nuevo_detall_pedido=mysql_query($sqldetall_pedido);

if(!$rs_nuevo_detall_pedido)
echo"Error sql :".mysql_error();
else
{
echo"se realizo el pedio correctamente";
session_destroy();
mysql_close($cn);

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

como insertar multiples reguistros utilizando el insert into dentro de un foreach()

Publicado por xve (5522 intervenciones) el 29/09/2011 18:51:11
Alfonso, te ejecuta unicamente el ultimo insert, perque la instruccion que añade los registros en la base de datos es: $rs_nuevo_detall_pedido=mysql_query($sqldetall_pedido); y esta fuera del foreach!!!!
tendría que ser algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
foreach($canastaa as $k=> $v)
{
    $rs_item=mysql_query("select idproducto,precio_sugerido from producto where idproducto='$k'");
 
    if(!$rs_item)
    echo "Error SQL:".mysql_error();
 
    $item=mysql_fetch_array($rs_item);
    $idproducto=$item[0];
    $pv=$item[1];
    $cantidad=$v;
    $sub_total=$item[1]*$v;
    $sqldetall_pedido="insert into detalle_pedido values('$idproducto','$pedidos','$pv','$cantidad','$sub_total')";
    $rs_nuevo_detall_pedido=mysql_query($sqldetall_pedido);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como insertar multiples reguistros utilizando el insert into dentro de un foreach()

Publicado por alfonso (4 intervenciones) el 29/09/2011 20:07:00
gracias por la respuesta, provee el codigo y ahora ya no inserta nada en la tabla detalle_pedido ningun reguistro, te explico un poco de lo que trato de hacer, trato que en la tabla detalle_pedido se inserten todos los pedidos que hace un cliente ejemplo:

idproducto idpedido precioventa cantidad subtotal
p1 1 200.0 2 400.0
p2 1 100.0 3 300.0
p3 1 50.0 4 20.0
eso es para un cliente cuando realiza el pedio, pero puede venir otro cliente y pedir otro pedido en este caso cabiara en el campo idpedido por 2 por que se trata de otro pedido y haci sucesivamente , un dato mas es que toy utilizando tres tablas para insertar, una tabla llamada cliente, otra llamada pedido y esta ultima llamada detalle_pedido es en esta ultima donde esta el problema de la inserccion de los reguistros, en las demas si me inserta correcto por que es una insercion por cada corrida que hago.
el codigo final es el siguiente:

foreach($canastaa as $k=> $v)
{
$rs_item=mysql_query("select idproducto,precio_sugerido from producto where idproducto='$k'");

if(!$rs_item)
echo "Error SQL:".mysql_error();

$item=mysql_fetch_array($rs_item);
$idproducto=$item[0];
$pv=$item[1];
$cantidad=$v;
$sub_total=$item[1]*$v;
$sqldetall_pedido="insert into detalle_pedido values('$idproducto','$pedidos','$pv','$cantidad','$sub_total')";
$rs_nuevo_detall_pedido=mysql_query($sqldetall_pedido);
}


$rs_nuevo_cliente=mysql_query($sql);//ejecucion de la insercciion que hago en la tabla cliente
$rs_nuevo_pedido=mysql_query($sqlpedido);//ejecucion de inserccion que hago en la tabla pedido

if(!$rs_nuevo_cliente or !$rs_nuevo_pedido or !$rs_nuevo_detall_pedido)
echo"Error sql :".mysql_error();
else
{
echo"se realizo el pedio correctamente";
session_destroy();
mysql_close($cn);

}

+++++++++++++++++
Nota: me e dado cuente que en la variable $rs_nuevo_detall_pedido es como si no tomara ningun valor ya que entra a el condicional if y me sale el mensaje programado que es Error sql, bueno espero una pronta respuesta y gracias ... por responder
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como insertar multiples reguistros utilizando el insert into dentro de un foreach()

Publicado por alfonso (4 intervenciones) el 29/09/2011 20:13:16
agregando a la Nota es que en conclusion CON ESTE CODIGO ya mensionado ESQUE EN LA TABLA detalle_pedido no inserta ahora ningun reguistro....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar