我有这个会话变量,在客户从产品列表中选择之后,该变量包含一个数组,该数组将当前产品存储在购物车中。
这是数组。
echo $_SESSION['cart'];
OUTPUT:
Array (
[5] => Array ( [quantity] => 1 [price] => 45.00 )
[7] => Array ( [quantity] => 1 [price] => 18.00 )
) 1
此数组显示购物车中有两件商品,产品编号为5和7,可以接受订购数量和产品价格。
我想将此数组保存在表中,我可以保存并重新收集此信息。谢谢
答案 0 :(得分:2)
答案 1 :(得分:0)
$cart = serialize($_SESSION['cart']);
这应该有用;)
答案 2 :(得分:0)
我不会将数组中产品的所有值存储在表格的列中。
我会创建一个表来存储订单。
<强>顺序表强>
orders
order_id (primary key)
product_id (reference to which product it is in products-table)
quantity
price (price when purchased the product)
根据您的会话:
Array (
[5] => Array ( [quantity] => 1 [price] => 45.00 )
[7] => Array ( [quantity] => 1 [price] => 18.00 )
)
如果5和7是你的实际产品,那么你应该在orders-table中存储类似这样的值:
INSERT INTO orders (product_id, quantity, price) VALUES (5, 1, 45000);
INSERT INTO orders (product_id, quantity, price) VALUES (7, 1, 18000)
如果您的产品成本为45.50,则应将其存储为:
INSERT INTO orders (product_id, quantity, price) VALUES (5, 1, 45500);
这是一个更好的方法的原因是,稍后在上提取有关任何订单的信息要容易得多。 (例如,返回特定产品的所有销售额)
如果您想获得特定订单的总数,只需执行SQL:
SELECT SUM(price) FROM orders WHERE order_id = 14
(订单14的示例)
如果您想要返回订单的所有值,您只需执行以下操作:
SELECT * FROM orders WHERE order_id = 14
(订单14的示例)