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

柚子互联(34元),湖北十堰高防, 香港 1核1G 5M

柚子互联官网商家介绍柚子互联(www.19vps.cn)本次给大家带来了盛夏促销活动,本次推出的活动是湖北十堰高防产品,这次老板也人狠话不多丢了一个6.5折优惠券而且还是续费同价,稳撸。喜欢的朋友可以看看下面的活动详情介绍,自从站长这么久以来柚子互联从19年开始算是老商家了。六五折优惠码:6kfUGl07活动截止时间:2021年9月30日客服QQ:207781983本次仅推荐部分套餐,更多套餐可进...

宝塔面板企业版和专业版618年中活动 永久授权仅1888元+

我们一般的站长或者企业服务器配置WEB环境会用到免费版本的宝塔面板。但是如果我们需要较多的付费插件扩展,或者是有需要企业功能应用的,短期来说我们可能选择按件按月付费的比较好,但是如果我们长期使用的话,有些网友认为选择宝塔面板企业版或者专业版是比较划算的。这样在年中大促618的时候,我们也可以看到宝塔面板也有发布促销活动。企业版年付899元,专业版永久授权1888元起步。对于有需要的网友来说,还是值...

萤光云(13.25元)香港CN2 新购首月6.5折

萤光云怎么样?萤光云是一家国人云厂商,总部位于福建福州。其成立于2002年,主打高防云服务器产品,主要提供福州、北京、上海BGP和香港CN2节点。萤光云的高防云服务器自带50G防御,适合高防建站、游戏高防等业务。目前萤光云推出北京云服务器优惠活动,机房为北京BGP机房,购买北京云服务器可享受6.5折优惠+51元代金券(折扣和代金券可叠加使用)。活动期间还支持申请免费试用,需提交工单开通免费试用体验...

php购物车为你推荐
赵雨润星辰变电影是真的启动了吗?在线漏洞检测求免费的漏洞扫描工具免费开通黄钻如何免费开通qq黄钻bluestacksBlueStacks是什么?在PC上畅玩Android 45万款应用硬盘人什么叫“软盘人”和“硬盘人”?lockdowndios8.1能用gpp3to2吗?型号A1429微信电话本怎么用微信电话本如何使用?php购物车PHP中用json实现购物车功能,怎么实现网站推广外链我是新手SEO,请问网站怎样做外链推广关闭qq相册图标怎么关闭QQ空间跟QQ相册的图标?
yaokan永久域名经常更换 中国域名网 BWH gomezpeer godaddy域名转出 lamp配置 嘉洲服务器 e蜗 129邮箱 阿里校园 流量计费 linux服务器维护 美国网站服务器 鲁诺 能外链的相册 环聊 独立主机 photobucket 可外链的相册 apnic 更多