Miembro No. 27960 Registrado: May 16, 2008 Mensajes: 17
Publicado: Sab May 17, 2008 5:27 amAsunto: cómo guardo id del pedido ¿?
hola muy buenas a tod@s los sabios del foro
que dedican parte de su tiempo a resolver nuestras dudas.
haber si me podéis hechar la mano por favor yaque soy una persona novata en el mundo (php+mysql) estoy intentando hacer un carro de compra que me falta solamente el último paso que es guardar los datos de la compra,el problema me resulta cuando un cliente tiene más de un producto en su carro no consigo almacenar los idproductos almacendos en el carro,sabiendo que la tabla de productos tiene la siguiente estructura:
id int(11) auto_increment(p.k)
producto varchar(100)
author varchar(50)
description longtext
precio decimal(9,2)
tabla de pedidos(va almacenar los datos del cliente) tiene la siguiente estructura:
pedidoid int(2) No auto_increment
nombre varchar(20)
dni varchar(9)
direccion varchar(100)
cuidad varchar(30)
codpostal varchar(40)
tabla de categoria_pedido:almacena los detalles del pedido
idpedido tinyint(1) (primary key)
categoid int(2) //aqui kiero guardar los id del producto que no consiguo hacerlo
precio decimal(9,2) //precio de la compra
cantidad tinyint(1) //total de articulos de compra.
aqui os dejo el script que tengo hecho :
Código:
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']; /*kdo hay más de un producto no sé cómo lo
almaceno aqui*/
$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');
gracias por haberme soportado hasta aqui
en la espera de vuestra ayuda y colaboración les saludos atentamente.
gracias de antemano.
Miembro No. 20814 Registrado: Apr 19, 2007 Mensajes: 424 Ubicación:
Cojutepeque, El
Salvador C. A.
Publicado: Sab May 17, 2008 10:41 amAsunto: Re: cómo guardo id del pedido ¿?
um, yo veo un poco confusa tu base de datos antes de intentar insertar registros, sería bueno que la corrijas. Talvez en tabla pedidos no deberías solicitar los datos del cliente, este debe estar en una tabla solo para él, tabla clientes.
para tu tabla detalle de pedido (que le has llamado categoria_pedido), no le entiendo mucho, talvez debas ver también tus relaciones entre las tablas. No olvides que si haces referencia a otra tabla, debes dejar el sus llaves foráneas con el mismo nombre que su referencia, simplemente para comprender mejor.
Um, hacer tus diagramas UML pueden ayudarte un poco.
Miembro No. 27960 Registrado: May 16, 2008 Mensajes: 17
Publicado: Dom May 18, 2008 7:57 amAsunto: Re: cómo guardo id del pedido ¿?
gracias maiku
es la primera que voy hacer un carro de compra por eso lo hago asi.
además os dejo aqui en enlace si alguien de los compañeros le hace fala:
http://www.programacionweb.net/articulos/articulo/?num=329.
pero no os olvidades de mi duda que
todavia la tengo sin resolver.
saludos
Miembro No. 20814 Registrado: Apr 19, 2007 Mensajes: 424 Ubicación:
Cojutepeque, El
Salvador C. A.
Publicado: Dom May 18, 2008 3:23 pmAsunto: Re: cómo guardo id del pedido ¿?
pues sigo sin entender la lógica de tu archivo php, pero bueno, ya que necesitas saber cómo se podría insertar varios productos, me imagino que pasarás esa cantidad de productos por un arreglo y se espera que pases los id de los productos por dicho array, para que mediante un bucle vayas insertando de uno en uno en la base de datos.
el array que cumple la condición donde puedes guardar varios datos es $carro=$_SESSION['carro']; luego de eso tu código es poco entendible.
en la línea $query="insert into ped_categoria values('','$prod','$totalprecio','$totalarticulos'); parece que quieres cuardar el total, y no el detalle de pedido, o como mencionas más de un producto.
yo lo haría así:
(suponiendo que en el array carro has pasado los id de los productos)
Código:
foreach($carro as $k => $v){
$query="insert into ped_categoria values('',$v['id'],$v['precio'],$['cantidad'])";
el primer campo, está vacío, esperaría que fuera ahí el id de pedido, el cual puedes pasar como variable de sesión o desde un campo oculto.
Otro tip: prueba haciendo varios archivos, uno para mostrar, otro para insertar, otro para seleccionar, por que así como está, se ve muy confuso. _________________ Grüße...
Maiku
Miembro No. 27960 Registrado: May 16, 2008 Mensajes: 17
Publicado: Lun May 19, 2008 4:25 amAsunto: Re: cómo guardo id del pedido ¿?
gracias maestro por tus consejos y tu paciencia.
te explico más o menos como estoy haciendo las cosas:
en la tabla pedido estoy guardando lo que son los datos del cliente básicamente :
idpedido,dni,nombre,dirección,cuidad
y en tabla de detalles_pedido quiero guardar detalles de la compra:
idpedido,gategoid(yaque se supone que cada producto tiene su propio identificador ,y cuando añado un producto al carro de compra tengo guardar su identificador)
precio(total de la compra)
cantidad(total de articulos comprados)
de modo si por ejemplo tengo la siguiente estructura:
Código:
producto precio cantidad udades
redes 10euros 1
sw del pc 15 1
total de articulos
2
total compra
25
su información
nombre ----------------
dni ----------------
dirección ----------------
cuidad ----------------
codigo p ----------------
boton
pulse para finalizar su
compra
kdo hago el siguiente bucle que recorre el array:
Código:
$suma=0;
//antes de recorrer todos
//los valores de la matriz
//$carro, pongo a cero la
//variable $suma, en la que
//iremos sumando los subtotales
//del costo de cada item por la
//cantidad de unidades que se
//especifiquen
foreach($carro as $k => $v){
//recorremos la matriz que tiene
//todos los valores del carro,
//calculamos el subtotal y el
// total
$subto=$v['cantidad']*$v['precio'];
$suma=$suma+$subto;
kdo salgo de este bucle y intento hacer insert $v['id'] se me guarda solamente un valor aunque en la carro hay más de un producto.
espero que me aclarado un pko
si tienes la posibilidad de mandarme tu correo eletrónico asi te mando los script que tengo hecho para que le hechas un vistazo
muchisimas gracias por tu paciencia compadre
saludos
No puedes publicar nuevos temas en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en encuestas en este foro