购物车PHP MYSQL SESSION ThinkPHP实现简单购物车功能

php购物车  时间:2021-02-09  阅读:()

PHP+MYSQL+SESSION实现简单购物车功能,

功能列表如下:

 1、将物品存入购物车

 2、将购物车物品删除

 3、修改购物物品购买数量【+1/-1】

 4、对购物车物品进行统计o 4.1、总项目o 4.2、总数量o 4.3、总金额

 5、对购物车单项物品的数量及金额进行统计

 6、清空购物车class MycartAction{函数01、 function addGoods

/**

*函数 addGoods

*功能将物品放入购物车[SESSION]中

*简介将指定物品信息$goods存入指定名$cartName的购物车中默认在物品信息首部附加“购物车物品序号”$skey

*时间 2011年7月28日 23:51:40

*作者 zhjp

* Enter description here . . .

*待完善项在存入购物车之前先进行判断所选物品是否已经存在是只修改购买数量、否存入购物车

* @param String $cartName

* @param String $goodsStr

*/public function addGoods($cartName, $goodsStr){

$skey=count($_SESSION[$cartName]);

//处理物品信息

$goodsStr=$skey. ' , ' .$goodsStr;switch ($cartName){case 'flyCart' :break;case 'mallCart' :

//配置物品字段,返回可读性更强的数组格式的物品信息

$goodsArr=$this->_setGoodsFields($goodsStr);break;case 'hotelCart' :break;

}

//物品存入购物车

$_SESSION[$cartName] [$skey]=$goodsArr;

//更新购物车信息

$this->_updateCart($cartName);

}

函数02、 function delGoods

/**

*函数 delGoods

*功能删除购物车[SESSION]中的某一物品

*简介根据提供的购物车名$cartName及指定购物车物品序号$skey将该物品记录置空值

*时间 2011年7月30日 23:00:59

*作者 by zhjp

* Enter description here . . .

* @param String $cartName

* @param Int $skey

*/public function delGoods($cartName, $skey){if( !isset($_SESSION[$cartName] ) ){ return ; }if($_SESSION[$cartName] [ 'ITEMS' ]==1){

// $this->clearAll($cartName);

}else{

//删除指定物品

$_SESSION[$cartName] [$skey]=null;

}

//更新购物车信息

$this->_updateCart($cartName);

}

函数03、 function clearAll

/**

*函数 c lea rAll

*功能清空购物车中的所有物品信息

*简介根据提供的购物车名$cartName将该购物车清空

*时间 2011年7月30日 23:07:21

*作者 by zhjp

* Enter description here . . .

* @param String $cartName

*/public function clearAll($cartName){if(isset($_SESSION[$cartName] ) ){unset($_SESSION[$cartName] );

}else{return ;

}

}

函数04、 function editCart

/**

*函数 editCart

*功能编辑购物车信息[物品购物数量+1-1]

*简介根据提供的购物车名$cartName及操作名$action结合指定购物车物品序号$skey对指定物品的购买数量进行+1-1操作

*时间 2011年7月30日 23:09:27

*作者 by zhjp

* Enter description here . . .

* @param String $cartName

* @param String $action[plus+] [minus-]

* @param Int $skey

*/public function editCart($cartName, $action, $skey){if( !isset($_SESSION[$cartName] ) ){return ;}switch ($action){case 'plus' :

$this->_plusOne($cartName, $skey);break;case 'minus' :

$this->_minusOne($cartName, $skey);break;

}

//更新购物车信息

$this->_updateCart($cartName);

}

函数05、 function searchGoods/**

*函数 searchGoods

*功能查找购物车物品信息

*简介可供添加物品操作调用如果所添加物品已存在则购物数量+

1反之将物品存入购物车

*时间 2011年8月1日19:14:23

*作者 by zhjp

* Enter description here . . .

*/public function searchGoods(){

}

函数06、 function getCartInfo/**

*函数 getCartInfo

*功能获取购物车基本信息【二维数组格式呈现TDArr】

*简介将购物车中的基本信息数据转化成二维数组【总项目items】 【总数量total】 【总金额money】

*时间 2011年7月30日 23:14:20

*作者 by zhjp

* Enter description here . . .

* @param String $cartName

*/public function getCartInfo($cartName){if( !isset($_SESSION[$cartName] ) ){return ;}

$infoArr=array() ;if(isset($_SESSION[$cartName] )){

$items=$_SESSION[$cartName] [ 'ITEMS' ] ;

$total=$_SESSION[$cartName] [ 'TOTAL' ] ;

$money=$_SESSION[$cartName] [ 'MONEY' ] ;

$infoArr=array( 'ITEMS'=>$items, 'TOTAL'=>$total, 'MONEY'=>$money) ;

}else{unset($infoArr);

}return $infoArr;

}

函数07、 function getCartList

/**

*函数 getCartList

*功能获取购物车所有的商品数据【二维数组格式呈现T DA r r】

*简介将购物车中的全部商品数据转化成二维数组不带HTML代码符

*时间 2011年7月28日 23:56:38

*作者 www.mntuku.cn

* Enter description here . . .

* @param String $cartName

*/public function getCartList($cartName){if(isset($_SESSION[$cartName] )){

$allGoodsTDArr=array() ;foreach ($_SESSION[$cartName] as $k=>$v){if(is_array($v)){

$allGoodsTDArr[ ]=$v;

}

}

}return $allGoodsTDArr;

}

函数08、 functionsetGoodsFields

_

/**

*函数 _setGoodsFields

*功能配置物品字段,将一条物品记录字符串转化成有相应字段名的数组

*简介

* 0 1 2 3 4 5 6

* key id code name extend price numb money

*其中key为购物车商品记录对应的SESSION数组key

*时间 2011年7月28日 23:27:59

*作者 by zhjp

* Enter description here . . .

* @param unknown_type $goodsStr

*/private function _setGoodsFields($goodsStr){

//id,code,name,extend,price

$str2Arr=split( ' , ' , $goodsStr) ;

$goodsArr=array(

'key'=>$str2Arr[0] ,

'id'=>$str2Arr[1] ,

'code'=>$str2Arr[2] ,

'name'=>$str2Arr[3] ,

'extend'=>$str2Arr[4] ,

'price'=>$str2Arr[5] ,

'numb'=>$str2Arr[6] ,

'money'=>number_format($str2Arr[5]*$str2Arr[6] ,

2));return $goodsArr;

}

函数09、 function/**

*函数 _plusOne

*功能将物品的购买数量+1

*简介根据提供的购物车物品序号$skey将指定的商品数量+1

*时间 2011年7月30日 23:24:26

*作者 by zhjp

* Enter description here . . .

* @param String $cartName

* @param Int $skey

*/private function _plusOne($cartName, $skey){if( !isset($_SESSION[$cartName] ) ){ return ;}

//指定物品购买数量+1

$_SESSION[$cartName] [$skey] [ 'numb' ]+=1;

//更新小计金额

$price=$_SESSION[$cartName] [$skey] [ 'price' ] ;

$numb=$_SESSION[$cartName] [$skey] [ 'numb' ] ;

$_SESSION[$cartName] [$skey] [ 'money' ]=number_format($price*$numb,2);

//更新购物车信息

$this->_updateCart($cartName);

}

函数10、 function minusOne

_

/**

*函数 _minusOne

*功能将物品的购买数量-1

*简介根据提供的购物车物品序号$skey将指定的商品数量-1

*时间 2011年7月30日 23:27:19

*作者 by zhjp

* Enter description here . . .

* @param unknown_type $cartName

* @param unknown_type $skey

*/private function _minusOne($cartName, $skey){if( !isset($_SESSION[$cartName] ) ){ return ;}//指定物品购买数量-1if($_SESSION[$cartName] [$skey] [ 'numb' ]>1){$_SESSION[$cartName] [$skey] [ 'numb' ] -=1;//更新小计金额

$price=$_SESSION[$cartName] [$skey] [ 'price' ] ;

$numb=$_SESSION[$cartName] [$skey] [ 'numb' ] ;$_SESSION[$cartName] [$skey] [ 'money' ]=number_format($price*$numb,2);

}

//更新购物车信息

$this->_updateCart($cartName);

}

函数11、 function

/**

*函数 _countMoney

*功能统计购物车物品总金额

*简介总金额[MONEY]

*时间 2011年7月31日 03:17:52

*作者 by zhjp

* Enter description here . . .

* @param String $cartName

*/private function _countMoney($cartName){if( !isset($_SESSION[$cartName] ) ){ return ;}

$count=0.0;switch ($cartName){case 'flyCart' :break;case 'mallCart' :

$cartList=$this->getCartList($cartName);foreach ($cartList as $k=>$v){

$count+=$v[ 'money' ] ;

}

$_SESSION[$cartName] [ 'MONEY' ]=number_format($count,2);break;case 'hotelCart' :break;

}

}

函数12、 function countItems

_

/**

*函数 _countItems

*功能统计购物车物品总项目

*简介总项目[ITEMS]

*时间 2011年7月31日 03:23:20

*作者 by zhjp

ZJI(月付480元),香港阿里云专线服务器

ZJI是成立于2011年原Wordpress圈知名主机商—维翔主机,2018年9月更名为ZJI,主要提供香港、日本、美国独立服务器(自营/数据中心直营)租用及VDS、虚拟主机空间、域名注册业务。本月商家针对香港阿里云线路独立服务器提供月付立减270-400元优惠码,优惠后香港独立服务器(阿里云专线)E3或者E5 CPU,SSD硬盘,最低每月仅480元起。阿里一型CPU:Intel E5-2630L...

美国高防云服务器 1核 1G 26元/月 香港/日本站群服务器 E5 16G 1600元/月 触摸云

触摸云国内IDC/ISP资质齐全商家,与香港公司联合运营, 已超8年运营 。本次为大家带来的是双12特惠活动,美国高防|美国大宽带买就可申请配置升档一级[CPU内存宽带流量选一]升档方式:CPU内存宽带流量任选其一,工单申请免费升级一档珠海触摸云科技有限公司官方网站:https://cmzi.com/可新购免费升档配置套餐:地区CPU内存带宽数据盘价格购买地址美国高防 1核 1G10M20G 26...

RackNerd 黑色星期五5款年付套餐

RackNerd 商家从2019年上线以来争议也是比较大的,一直低价促销很多网友都认为坚持时间不长可能会跑路。不过,目前看到RackNerd还是在坚持且这次黑五活动也有发布,且活动促销也是比较多的,不过对于我们用户来说选择这些低价服务商尽量的不要将长远项目放在上面,低价年付套餐服务商一般都是用来临时业务的。RackNerd商家这次发布黑五促销活动,一共有五款年付套餐,涉及到多个机房。最低年付的套餐...

php购物车为你推荐
赵雨润情人节“我们约会吧”电影DVD_我们约会吧高清DVD下载_qvod快播??51自学网站网上自学网站有哪些?最好是免费的,我想学习网页设计51自学网站有哪些免费自学网支付宝查询余额支付宝钱包怎么查余额?湖南商标注册在湖南商标注册到底有什么用,不就是一个图标吗?flash导航条如何添加FLASH导航条安卓应用平台现在android平台的手机都有哪些?网店推广网站什么平台适合做淘宝店铺推广网易公开课怎么下载网易公开课的视频该如何下载?腾讯文章怎样才能在手机腾讯网上发表文章?
2019年感恩节 阿里云邮箱登陆首页 韩国电信 php免费空间 html空间 52测评网 jsp空间 最好的qq空间 新睿云 英国伦敦 godaddy空间 七牛云存储 阿里云邮箱怎么注册 ncp是什么 cdn加速 cdn加速技术 服务器操作系统 超低价 赵荣博客 海康流媒体服务器 更多