°

php读取购物车中商品的信息

PHP实战视频教程大全

tp5第四季商城B2C商城系统在开发的时候一个重点知识就是购物车数据的读取处理,我们在往购物车保存数据的时候,保存的数据格式并不复杂:

[
’15-3,4’=>1,
’16-3,5’=>2,
’16-3,4’=>1,
]

是这样的数据格式的一个数组,商品id-商品属性1,商品属性2=>购买数量

但是当我们展示的时候要展示很多信息,商品的名称、缩略图、价格、会员价格、小计、商品属性等等,如下图所示:

下面看看我们的核心代码:

[php]
//读取cookie获取购物车商品
public function getGoodsListInCart(){
$goods=model(‘goods’);
$cart=isset($_COOKIE[‘cart’]) ? unserialize($_COOKIE[‘cart’]) : array();
$_cart=array();
foreach ($cart as $k => $v) {
$arr=explode(‘-‘, $k);//$arr[0]就是商品id,如果存在第二个元素的话$arr[1]代表商品单选属性id字符串
$goodsInfo=$goods->field(‘id,goods_name,mid_thumb’)->find($arr[0]);
$memberPrice=$goods->getMemberPrice($arr[0]);
$_cart[$k][‘goods_name’]=$goodsInfo[‘goods_name’];
$_cart[$k][‘mid_thumb’]=$goodsInfo[‘mid_thumb’];
$_cart[$k][‘member_price’]=$memberPrice;
$_cart[$k][‘goods_num’]=$v;
$_cart[$k][‘goods_id’]=$goodsInfo[‘id’];
$_cart[$k][‘goods_id_attr_id’]=$k;//单独保存$k,用于处理复选框问题
$_cart[$k][‘goods_attr_str’]=”;//商品单选属性字符串初始化
if($arr[1]){
// 属性名称 属性值 属性价格
// 颜色 红色 0 颜色:红色 (¥ 0 元)
// 尺寸 XXL 100
$goodsAttrStr=array();//商品单选属性字符串
$goodsAttrPrice=0;
$goodsAttrRes=db(‘goods_attr’)->alias(‘ga’)->field(‘ga.*,a.attr_name’)->join(‘attr a’,"ga.attr_id = a.id")->where(‘ga.id’,’in’,$arr[1])->select();
foreach ($goodsAttrRes as $k1 => $v1) {
$goodsAttrStr[]=$v1[‘attr_name’].’:’.$v1[‘attr_value’].'(¥ ‘.$v1[‘attr_price’].’元)’;
$goodsAttrPrice+=$v1[‘attr_price’];
}
$goodsAttrStr=implode(‘<br />’, $goodsAttrStr);
$_cart[$k][‘goods_attr_str’]=$goodsAttrStr;
$_cart[$k][‘member_price’]+=$goodsAttrPrice;
}
}
return $_cart;
}
[/php]

打赏
  喜欢