1

我正在开发一个购物车应用程序,我需要有关使用 $_SESSION 存储购物车项目的帮助。

这个概念

当用户点击添加到购物车时,会存储以下信息:产品 ID 例如 5312、产品名称、产品数量、产品规则(例如颜色:白色、尺寸:中等)

问题

问题是当我按项目 ID 将条目保存在 $_SESSION 中时。我想假设以下内容:

  • 用户添加 1 件产品 #11,颜色为白色
  • 然后用户添加 2 件产品 #11,颜色为蓝色

如果我按项目 ID 保存,则该信息将始终被覆盖,我想让每个呼叫/每个添加到购物车的内容都是唯一的,因为我假设他可能会添加不同尺寸、不同颜色的同一产品。

我怎么能遇到这样的问题?

非常感谢任何想法或输入。

4

3 回答 3

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 表以获取您的购物车信息。

于 2012-09-04T20:54:12.463 回答
0

您可以使用产品 ID 作为键来存储数组。

于 2012-09-04T20:50:59.313 回答
0

与其在会话中存储产品,不如存储购物车项目对象。购物车项目对象将引用产品(产品 ID)以及该项目的任何属性(颜色、数量、必要时的不同价格等)。为每个购物车项目分配一个随机 ID,您永远不会遇到覆盖问题。

于 2012-09-04T20:54:58.253 回答