Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

carrito php a tabla mysql

Estas en el tema de carrito php a tabla mysql en el foro de Mysql en Foros del Web. hola queria hacerles una consulta, por que tengo un carrito de compras, en el cual almacena los productos de compro en la variable session... bueno, ...
  #1 (permalink)  
Antiguo 17/11/2012, 01:01
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 14 años, 5 meses
Puntos: 5
carrito php a tabla mysql

hola queria hacerles una consulta, por que tengo un carrito de compras, en el cual almacena los productos de compro en la variable session...


bueno, la duda, esta cuando cargo los datos del carrito en una tabla mysql... busque y encontre algo masomenos, en lo que es programacion PHP.
--------------------

lo que me complica es organizar los datos y como seria , la tabla , donde se almacene este carrito...

El carrito de session tiene variables, valores,(id_producto,cantidad. precio. total, id_usuario...)

yo creo, que las tablas donde llegan los datos del carrito podrian ser...

-------------------------------------------

ORDEN(num_orden, id_usuario, total, fecha )

CONTENIDO_ORDEN(id_contenido, id_producto. cantidad, precio)

---------------------------------------------
ORDEN.total es el total del carrito, y CONTENIDO_ORDEN.precio ,es por producto


en orden.num_orden, sera incrementable, por cada carrito que cargue un usuario se hara un registro

------
despues en contenido orden, la duda es, (todavia no pase nada del carrito a la tabla)

¿como le coloco el valor al id_contenido de contenido_orden? por que la PK de orden, se genera primero, realizo primero ese insert into...
pero tendre que saber el valor, para que los "contenido_orden" tengan una "orden " como referencia....


saludo
  #2 (permalink)  
Antiguo 19/11/2012, 03:03
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: carrito php a tabla mysql

A ver el total de orden no es estrictamente necesario, incluso si nos ponemos estrictos podria ser peligroso puesto que es un campo calculado. Siempre lo pudes calcular sumando los registros relacionados con una orden, luego para que guardarlo. Pero si en la sesion vas calculando el total tampoco seria un problema....

Luego ya no tienes problema, insertas la nueva orden, obtienes el ultimo id insertado LAST_INSERT_ID().

En la tabla CONTENIDO_ORDEN te falta un campo num_orden que es donde vas a guardar el id obtenido con la funcion que te indico.

Deberías encapsular todos los inserts en una transacción para evitar que un error deje incompleta una orden o sin contenido.

ORDEN(num_orden, id_usuario, fecha)

(con o sin total)

CONTENIDO_ORDEN(id_contenido, num_orden, id_producto. cantidad, precio)

donde id_contenido es la PK autoinc y num_orden es FK referenciando a ORDEN

Esto te permitirá hacer

Código MySQL:
Ver original
  1. SELECT o.num_orden, o.id_usuario,SUM(c.cantidad*c.precio) total, o.fecha
  2. FROM ORDEN o INNER JOIN CONTENIDO_ORDEN c ON o.num_orden=c.num_orden
  3. GROUP BY num_orden, o.id_usuario,o.fecha;

para obtener el total de cada orden.

De hecho, id_contenido tampoco es del todo necesario ya que num_orden+id_producto podrian ser una PK compuesta, esto ya depende de tu estilo.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 19/11/2012 a las 03:23

Etiquetas: carrito, php, sql, tabla
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 12:48.