PDA

Ver la Versión Completa : cómo guardo id del pedido¿?


lakers
16-05-2008, 12:11:58
hola a tod@s los sabi@s del foro.:)
estoy intentando hacer un carro de compra(php+mysql).el problema que tengo si en mi carro de compra hay más de un producto(dos o tres)
(sabiendo que tabla de producto tiene la siguiente estructura:
id int(11) auto_increment(primary key)
producto varchar(100)
author varchar(50)
description longtext
precio decimal(9,2))
no consigo en la tabla de pedidos se guarda los id producto(libros).
la tabla de pedidos tiene la siguente estructura:
idpedido tinyint(1) auto_increment(p.k)
categoid int(2) //aqui guardo los idproducto
precio decimal(9,2) //guardo el total de compra
cantidad tinyint(1) //guardo la cantidad de compra
si por ejemplo un cliente compra más de dos libros ,no consigo guardar los id de de éstos dos libros yaque mi intención que un cliente puede efectuar más de un pedido o compra ¿?corregirme si me equivoco:mad:¿?
aqui os dejo parte del script de la inserción de los datos
con respecto al total de compra y la cantidad de articulos se insertan bien
salvo categoid que me coge solamente un valor aunque en el carro por ejemplo hay más de un producto :o :p :mad:

session_start();
$carro=$_SESSION['carro'];//en $carro guardo toda la compra
$cont=0;
$suma=0;
foreach($carro as $k => $v){
$subto=$v['cantidad']*$v['precio'];
$suma=$suma+$subto;
$cont++;
?>
<!--aqui se muestra el nombre del producto(libro),precio,cantidad!-->
<td><?php echo $v['producto'] ?></td>
<td><?php echo $v['precio'] ?></td>
<td width="43" align="center"><?php echo $v['cantidad'] ?>
</td>
</tr>
<?php } ?>
</table>
<div align="center"><span class="prod"><h2>Total de Artículos:</h2>
<?php echo "<h2>".count($carro)."</h2>"; ?></span>
</div><br>
<div align="center"><span class="prod"><h2>Total:</h2>
<?php echo "<h2>".number_format($suma,2)."€</h2>"; ?></span>
</div><br>
<?php
$prod=$v['id'];
$totalarticulos=count($carro);
$totalprecio=number_format($suma,2);
$c=mysql_connect("localhost","","root") or die ("problemas al establecer la conexión");
$d=mysql_select_db("pro") or die("problemas al seleccionar la base de datos");
$query="insert into ped_categoria values('','$prod','$totalprecio','$totalarticulos'


en la espera de vuestra respuestas les saludo atentamente
gracias
saludos

D-MO
16-05-2008, 17:19:27
Según lo que veo, el problema radica en que utilizas una sola tabla para el pedido, con eso, cada vez que agregues un producto estarás agregando un registro nuevo y por lo tanto el id del pedido será diferente.

Lo que yo haría es crear dos tablas para el pedido, "Pedido" y "DetallePedido", en donde pedido sería la "cabecera" y DetallePedido, como su nombre lo indica, sería el "detalle".

Debes relacionar estas dos tablas, para que cada vez que agregues un producto lo hagas a detalle pedido y lo vincules con el id del pedido del cliente.

No se si me he explicado, espero que si:p

Saludos.

lakers
16-05-2008, 19:36:55
gracias [D-MO]
por tu respuesta tienes razón en lo que dices pero basicamente tengo 2 tablas:
pedidoid(int(2) primary key (auto_increment)
nombre varchar(10)
dni
dirección
cuidad
codigo postal
con estos datos guardo los datos del cliente
2)tabla pedido_categoria:
pedidoid int()
categoid //para almacenar id de los productos
precio //total de la compra
cantidad //total de articulos
entonces el problema me resulta en el momento de guardar los id de los compra
si tengo la siguiente estructura:

producto precio cantidad de unidad
ada 12e 1
java desde 0 4e 1
Total de Artículos:

2

Total

16€

su información
nombre
dni
dirección
cuidad
codigo postal
pulse para confirmar su compra
botón

toda la información se me guarda bien salvo los id de los productos
lo que me surge pero tampoco sé cómo meterle mano es guardar éstos id en un array y luego guardar éste array en la base de datos pero seria tarea doble:D:o:confused:¿?
espero vuestra ayuda
muchas gracias
saludos