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

妮妮云香港CTG云服务器1核 1G 3M19元/月

香港ctg云服务器香港ctg云服务器官网链接 点击进入妮妮云官网优惠活动 香港CTG云服务器地区CPU内存硬盘带宽IP价格购买地址香港1核1G20G3M5个19元/月点击购买香港2核2G30G5M10个40元/月点击购买香港2核2G40G5M20个450元/月点击购买香港4核4G50G6M30个80元/月点击购买香...

美国G口/香港CTG/美国T级超防云/湖北高防云服务器物理机促销活动 六一云

六一云 成立于2018年,归属于西安六一网络科技有限公司,是一家国内正规持有IDC ISP CDN IRCS电信经营许可证书的老牌商家。大陆持证公司受大陆各部门监管不好用支持退款退现,再也不怕被割韭菜了!主要业务有:国内高防云,美国高防云,美国cera大带宽,香港CTG,香港沙田CN2,海外站群服务,物理机,宿母鸡等,另外也诚招代理欢迎咨询。官网www.61cloud.net最新直销劲爆...

10gbiz($2.36/月),香港/洛杉矶CN2 GIA线路VPS,香港/日本独立服务器

10gbiz发布了9月优惠方案,针对VPS、独立服务器、站群服务器、高防服务器等均提供了一系列优惠方面,其中香港/洛杉矶CN2 GIA线路VPS主机4折优惠继续,优惠后最低每月仅2.36美元起;日本/香港独立服务器提供特价款首月1.5折27.43美元起;站群/G口服务器首月半价,高防服务器永久8.5折等。这是一家成立于2020年的主机商,提供包括独立服务器租用和VPS主机等产品,数据中心包括美国洛...

php购物车为你推荐
weipin唯品金融是什么?大家基本都怎么用呢?二叉树遍历二叉树三种遍历方式原则?人人逛街人人逛街网是正品吗电子商务网站模板做电子商务网站用什么cms或者模版比较好?小米手柄小米手柄怎么用?小米手柄手机用小米手柄能玩什么游戏分词技术搜索引擎采用的是什么技术?系统分析员一个优秀的系统分析师应该具备哪些方面的知识和素质?虚拟机软件下载谁有好的虚拟机软件?网站优化方案网站建设及优化的方案
godaddy域名解析 virpus 商家促销 京东商城0元抢购 有奖调查 工信部icp备案号 银盘服务 空间登录首页 starry 美国盐湖城 江苏徐州移动 apnic hostease 学生机 美国主机 forwarder 什么是dns web是什么意思 reboot 远程登录 更多