如何在$ _SESSIONS中按唯一ID存储购物车项目?

时间:2012-09-04 20:48:03

标签: php

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

概念

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

问题

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

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

如果我按商品ID保存,信息将被覆盖,我想让每个电话/每个添加到购物车唯一,因为我假设他可能会添加不同尺寸,相同产品的不同颜色。

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

非常感谢任何想法或意见。

3 个答案:

答案 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,您永远不会遇到覆盖问题。