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

华纳云不限流量¥324/年,香港双向CN2(GIA)云服务器/1核1G/50G存储/2Mbps

华纳云(HNCloud Limited)是一家专业的全球数据中心基础服务提供商,总部在香港,隶属于香港联合通讯国际有限公司,拥有香港政府颁发的商业登记证明,保证用户的安全性和合规性。 华纳云是APNIC 和 ARIN 会员单位。主要提供香港和美国机房的VPS云服务器和独立服务器。商家支持支付宝、网银、Paypal付款。华纳云主要面向国内用户群,所以线路质量还是不错的,客户使用体验总体反响还是比较好...

香港 1核 1G 5M 22元/月 美国 1核 512M 15M 19.36元/月 轻云互联

轻云互联成立于2018年的国人商家,广州轻云互联网络科技有限公司旗下品牌,主要从事VPS、虚拟主机等云计算产品业务,适合建站、新手上车的值得选择,香港三网直连(电信CN2GIA联通移动CN2直连);美国圣何塞(回程三网CN2GIA)线路,所有产品均采用KVM虚拟技术架构,高效售后保障,稳定多年,高性能可用,网络优质,为您的业务保驾护航。官方网站:点击进入广州轻云网络科技有限公司活动规则:用户购买任...

触碰云高性价20.8元/月,香港云服务器,美国cn2/香港cn2线路,4核4G15M仅115.2元/月起

触碰云怎么样?触碰云是一家成立于2019年的商家。触碰云主营香港/美国 VPS服务器、独立服务器以及免备案CDN。采用的是kvm虚拟构架,硬盘Raid10,Cn2线路,去程电信CN2、移动联通直连,回程三网CN2。最低1核1G带宽1M仅20.8元/月,不过这里推荐香港4核4G15M,香港cn2 gia线路云服务器,仅115.2元/月起,性价比还是不错的。点击进入:触碰云官方网站地址触碰云优惠码:优...

php购物车为你推荐
人际关系网站大家觉得办一个人际关系类的网站有前途吗? 比如像 www.boboled.com郭吉军新媒体营销的咨询行业有哪些好的老师?个性qq资料`谁有最新 最有个性的QQ个性资料网易公开课怎么下载如何下载网易公开课免费免费建站我想建一个自己的免费网站,但不知道那里有..分词技术怎样做好百度分词技术和长尾词优化srv记录如何解析一个SRV域名的ipsrv记录exchange 2010 自动发现需不需要srv记录网站优化方案一个网站进行优化的流程及步骤域名库电脑上文件有多少域名?各什么意思?
vps优惠码 个人域名备案流程 全球付 512au seovip 申请空间 eq2 国内php空间 元旦促销 dux 建立邮箱 域名接入 台湾谷歌 架设邮件服务器 广东服务器托管 博客域名 websitepanel winserver2008r2 带宽测速 rsync 更多