entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Donde debo guardar arrays

enter image description here

Estoy haciendo una tienda online y este es el array de los productos de un 'carrito' en que me recomendarian guardar , lo serializo y lo guardo en mysql? en json me consumiria muchos recursos? Ayudenme por favor :C

1 Respuesta

2votos

Leonardo-Tadei Puntos227320

Hola Christian,

lo más cómodo para guardar un carrito de compras es almacenarlo en una variable de sesión: los datos de carrito son dinámicos y están hechos para perderse (expiran en el tiempo, se borran al cerrar el navegador, etc)

Lo bueno de esto es que no tenés que descomponer la estructura y se puede guardar el array directamente. Suponiendo que tu array se llame $carrito, bastaría con hacer

$_SESSION['carrito'] = $carrito;

Para que esto funcione, tu primer línea de código antes de cualquier salida al navegador debe ser:

session_start();

Luego, en cualqueir otra página, recuperás el carrito haciendo simplemente:

session_start();
$carrito = $_SESSION['carrito'];

Cuando la compra termina, vaciás el vector y lo asignás a la sesión para que te guarde un carrito vacío:

session_start();
...
$carrito = null;
$_SESSION['carrito'] = $carrito;

Tenés más información sobre el manejo de sesiones en http://ar2.php.net/manual/es/book.session.php

Saludos!

0voto

christian_avalos comentado

Pero leonardo, necesito los datos del carrito para poder hacer la entrega, o como me recomendarias que lo haga

0voto

Leonardo-Tadei comentado

Hola Christian,

los datos del carrito, una vez confirmada la operación, los deberías guardar para que persistan en tablas de base de datos o similar... pero ahí ya no se llama "carrito", sino "pedido", "compra" o algo similar.

El "carrito" es siempre, por definición, un "mientras tanto" y por eso no suelve valer la pena guardarlo.

Respecto a guardar el pedido o la compra, depende bastante de la estructura de datos que tengas, pero te harán falta por lo menos 2 tablas: una con la cabecera del comprobante con la fecha, los datos del cliente, datos de envío, formas de pago, etc, y otra con los detalles del comprobante, que tendrá 6 campos si los datos que tiene un producto son solo esos: id, id_comprobante, id_producto, nombre, precio y cantidad.

Lo mejor para guardar los datos en una DB es siempre llevarlos a 3ra forma normal al menos.

Saludos cordiales!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta