购物车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

Sharktech$129/月,1Gbps不限流量,E5-2678v3(24核48线程)

Sharktech最近洛杉矶和丹佛低价配置大部分都无货了,只有荷兰机房还有少量库存,商家又提供了两款洛杉矶特价独立服务器,价格不错,CPU/内存/硬盘都是高配,1-10Gbps带宽不限流量最低129美元/月起。鲨鱼机房(Sharktech)我们也叫它SK机房,是一家成立于2003年的老牌国外主机商,提供的产品包括独立服务器租用、VPS主机等,自营机房在美国洛杉矶、丹佛、芝加哥和荷兰阿姆斯特丹等,主...

搬瓦工:新增荷兰机房 EUNL_9 测评,联通 AS10099/AS9929 高端优化路线/速度 延迟 路由 丢包测试

搬瓦工最近上线了一个新的荷兰机房,荷兰 EUNL_9 机房,这个 9 的编号感觉也挺随性的,之前的荷兰机房编号是 EUNL_3。这次荷兰新机房 EUNL_9 采用联通 AS9929 高端路线,三网都接入了 AS9929,对于联通用户来说是个好消息,又多了一个选择。对于其他用户可能还是 CN2 GIA 机房更合适一些。其实对于联通用户,这个荷兰机房也是比较远的,相比之下日本软银 JPOS_1 机房可...

friendhosting:(优惠55%)大促销,全场VPS降价55%,9个机房,不限流量

每年的7月的最后一个周五是全球性质的“系统管理员日”,据说是为了感谢系统管理员的辛苦工作....friendhosting决定从现在开始一直到9月8日对其全球9个数据中心的VPS进行4.5折(优惠55%)大促销。所有VPS基于KVM虚拟,给100M带宽,不限制流量,允许自定义上传ISO...官方网站:https://friendhosting.net比特币、信用卡、PayPal、支付宝、微信、we...

php购物车为你推荐
简体翻译成繁体有什么将简体中文翻译成繁体中文的网站啊湖南商标注册湖南商标注册怎么办理数码资源网有什么网站弄相片效果比较好的?ps抠图技巧photoshop最基本的抠图方法和技巧!镜像文件是什么什么是文件镜像?什么是镜像文件?安卓应用平台哪个手机应用平台的软件比较正版,安全?中小企业信息化小企业需要信息化吗?需要的话要怎么实现信息化呢?qq空间装扮qq空间怎么装扮qq怎么发邮件如何通过QQ发送邮件畅想中国畅想中国发展前景
海外域名注册 中文域名交易中心 ddos dreamhost inmotionhosting rackspace 国内永久免费云服务器 域名优惠码 标准机柜尺寸 mysql主机 韩国网名大全 新家坡 东莞idc 架设邮件服务器 服务器维护 阿里云邮箱申请 googlevoice 建站论坛 卡巴斯基免费下载 压力测试工具 更多