我正在开发购物车应用程序,我需要有关使用$ _SESSION存储购物车项目的帮助。
概念
当用户点击添加到购物车时,会存储以下信息:产品ID,例如5312,产品名称,产品数量,产品规格(例如颜色:白色,尺寸:中等)
问题
问题是当我按项目ID保存$ _SESSION中的条目时。我想假设以下内容:
如果我按商品ID保存,信息将被覆盖,我想让每个电话/每个添加到购物车唯一,因为我假设他可能会添加不同尺寸,相同产品的不同颜色。
我怎么能遇到这样的问题?
非常感谢任何想法或意见。
答案 0 :(得分:3)
您可以使用SESSION变量执行多维数组。
$_SESSION['cart']=array(
$product_id=>array($product_count,$product_options),
$product_id=>array($product_count,$product_options),
);
或者$product_id
不是唯一的:
$_SESSION['cart']=array(
array($product_id,$product_count,$product_options),
array($product_id,$product_count,$product_options),
);
通过这样的方式,您可以将唯一的产品ID作为数组键,然后存储您需要的计数,选项和其他信息。
另一种选择是为您的购物车创建一个表,然后让会话存储购物车ID。然后你只需检查mysql表中的购物车信息。
答案 1 :(得分:0)
您可以使用产品ID作为密钥存储数组。
答案 2 :(得分:0)
而不是将产品存储在会话存储中的购物车项目对象。购物车项目对象将具有对产品(产品ID)的引用以及该项目的任何属性(颜色,数量,必要时的不同价格等)。为每个购物车项目分配一个随机ID,您永远不会遇到覆盖问题。