首页 »PHP教程 » cookie数组:cookie和数组的结合实现购物车 »正文
cookie数组:cookie和数组的结合实现购物车
来源: 发布时间:星期一, 2009年1月12日 浏览:195次 评论:0
发现PHP很多 ![](/icons/89515hanshu.gif) 得到 ![](/icons/89515de.gif) 结果都是 ![](/icons/89515shuzu.gif) 给出 ![](/icons/89515de.gif) ![](/icons/89515dou.gif) 最常用 ![](/icons/89515de.gif) 就是MySQL_fetch_ ![](/icons/89515<img src=) .gif' /> ![](/icons/89515kh.gif) , 包括取得 ![](/icons/89515de.gif) ![](/icons/89515zifu.gif) 串信息生成 ![](/icons/89515shuzu.gif) ![](/icons/89515dou.gif) 再由 ![](/icons/89515shuzu.gif) 分解成 ![](/icons/89515zifu.gif) 串用 ![](/icons/89515de.gif) ![](/icons/89515hanshu.gif) explode ![](/icons/89515kh.gif) ; implode ![](/icons/89515kh.gif) ; 以前也没有写过购物车的类 ![](/icons/89515de.gif) 实现 ![](/icons/89515dou.gif) 自觉属于愚笨 ![](/icons/89515de.gif) 那种类型 ![](/icons/89515dou.gif) 断断续续写了 ![](/icons/89515yi.gif) 个星期 ![](/icons/89515dou.gif) 琢磨了(姑且允许作为 ![](/icons/89515yi.gif) 个新手自大 ![](/icons/89515yi.gif) 下)购物车 ![](/icons/89515de.gif) 处理 ![](/icons/89515chengxu.gif) ![](/icons/89515dou2.gif) 又 ![](/icons/89515yinwei.gif) ![](/icons/89515yi.gif) 直没有入 ![](/icons/89515class.gif) ![](/icons/89515de.gif) 门 ![](/icons/89515dou.gif) 所以还是面向过程吧 ![](/icons/89515dou2.gif) 我用 ![](/icons/89515de.gif) 思路方法本质是:把cookie存入 ![](/icons/89515<img src=) .gif' /> ![](/icons/89515dou.gif) 对 ![](/icons/89515<img src=) .gif' />进行增加、删除、修改操作 ![](/icons/89515dou.gif) ![](/icons/89515<img src=) .gif' />中 ![](/icons/89515de.gif) 每 ![](/icons/89515yi.gif) 组记录都是 ![](/icons/89515yi.gif) 个商品 ![](/icons/89515de.gif) 信息(个数 ![](/icons/89515dou.gif) 价格等) 解决购物车 ![](/icons/89515de.gif) 思路是用cookie记录 ![](/icons/89515yi.gif) 个 2维 ![](/icons/89515shuzu.gif) ![](/icons/89515dou2.gif) ![](/icons/89515yi.gif) 维代表每 ![](/icons/89515yi.gif) 个商品 ![](/icons/89515dou.gif) 2维包含了商品 ![](/icons/89515de.gif) id,商品 ![](/icons/89515de.gif) 数量...等可以自行增加 ![](/icons/89515dou.gif) 反正都是 2维了 ![](/icons/89515dou.gif) 自己愿意带多少个商品属性就加上去 ![](/icons/89515dou2.gif) 对购物车里商品 ![](/icons/89515de.gif) 操作 ![](/icons/89515yi.gif) 般有以下几个:添加商品 ![](/icons/89515dou.gif) 修改商品数量 ![](/icons/89515dou.gif) 删除商品 ![](/icons/89515dou.gif) 清空购物车 ![](/icons/89515dou2.gif) 这几个操作都是针对cookie ![](/icons/89515de.gif) ![](/icons/89515dou2.gif) 每次把cookie中 ![](/icons/89515de.gif) ![](/icons/89515shuzu.gif) 取出来 ![](/icons/89515dou.gif) 增加、修改、删除 ![](/icons/89515yi.gif) 番 ![](/icons/89515dou.gif) 再记录到cookie中 ![](/icons/89515dou2.gif) 至于清空购物车 ![](/icons/89515dou.gif) 那就更简单了 ![](/icons/89515dou.gif) 直接设置同名 ![](/icons/89515de.gif) cookie为空就可以了 ![](/icons/89515dou2.gif) 下面是我写 ![](/icons/89515de.gif) 具体操作 //加入购物车 function addcart($goods_id,$goods_num){ $cur_cart_ .gif' /> = unserialize(stripslashes($_COOKIE['shop_cart_info'])); ($cur_cart_ .gif' /> ""){ $cart_info[0] = $goods_id; $cart_info[0] = $goods_num; cookie("shop_cart_info",serialize($cart_info)); }![](/icons/89515else.gif) ($cur_cart_ .gif' /><>""){ //返回 键名倒序取最大 $ar_keys = .gif' />_keys($cur_cart_ .gif' />); rsort($ar_keys); $max_ .gif' />_keyid = $ar_keys[0]+1; //遍历当前 购物车![](/icons/89515shuzu.gif) //遍历每个商品信息![](/icons/89515shuzu.gif) 0值 如果键值为0且货号相同则购物车存在相同货品 foreach($cur_cart_ .gif' /> as $goods_current_cart){ foreach($goods_current_cart as $key=>$goods_current_id){ ($key 0 and $goods_current_id $goods_id){ echo "<script language=JavaScript>"; echo " (confirm('购物车已经有该商品 继续购物按----确定!查看购物车按----取消!'))"; echo "{history.go(-1)}"; echo " {window.location.href='xqs_cart.php'}"; echo "</script>"; exit ; } } } $cur_cart_ .gif' />[$max_ .gif' />_keyid] = $goods_id; $cur_cart_ .gif' />[$max_ .gif' />_keyid] = $goods_num; cookie("shop_cart_info",serialize($cur_cart_ .gif' />)); } } //从购物车删除 function delcart($goods_ .gif' />_id){ $cur_goods_ .gif' /> = unserialize(stripslashes($_COOKIE['shop_cart_info'])); //删除该商品在 中 位置 un ($cur_goods_ .gif' />[$goods_ .gif' />_id]); cookie("shop_cart_info",serialize($cur_goods_ .gif' />)); } //修改购物车货品数量 function update_cart($up_id,$up_num,$goods_ids){ //先清空cookie,以便重新设置 传递过来 3个 参数 1![](/icons/89515shuzu.gif) 标识 2商品数量 3商品编号![](/icons/89515shuzu.gif) //如果不清空cookie则无法处理数量为零 商品 cookie("shop_cart_info",""); foreach($up_id as $song){ //先返回 当前单元;再把指针向下移动 个位置 $goods_nums = current($up_num); $goods_id = current($goods_ids); next($up_num); next($goods_ids); //当商品数量为空 时候 注销此处![](/icons/89515de.gif) 值并用continue 2 语句避开下面 操作 继续做foreach循环 while($goods_nums 0){ un ($song); continue 2; } $cur_goods_ .gif' />[$song][0] = $goods_id; $cur_goods_ .gif' />[$song][1] = $goods_nums; } cookie("shop_cart_info",serialize($cur_goods_ .gif' />)); } 后面形成订单 ![](/icons/89515de.gif) 事情 ![](/icons/89515dou.gif) 那就需要根据自己 ![](/icons/89515de.gif) 需要 ![](/icons/89515dou.gif) 是否有积分 ![](/icons/89515dou.gif) 是否有现金奖励的类 ![](/icons/89515de.gif) 入库了
相关文章
读者评论
发表评论
|
|