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
美得云怎么样?美得云好不好?美得云是第一次来推广软文,老板人脾气特别好,能感觉出来会用心对待用户。美得云这次为大家提供了几款性价比十分高的产品,美国cera 2核4G 15元/月 香港1核 1G 3M独享 15元/月,并且还提供了免费空间给大家使用。嘻嘻 我也打算去白嫖一个空间了。新用户注册福利-8折优惠码:H2dmBKbF 截止2021.10.1结束。KVM架构,99.99%高可用性,依托BGP...
Justg是一家俄罗斯VPS云服务器提供商,主要提供南非地区的VPS服务器产品,CN2高质量线路网络,100Mbps带宽,自带一个IPv4和8个IPv6,线路质量还不错,主要是用户较少,带宽使用率不高,比较空闲,不拥挤,比较适合面向非洲、欧美的用户业务需求,也适合追求速度快又需要冷门的朋友。justg的俄罗斯VPS云服务器位于莫斯科机房,到美国和中国速度都非常不错,到欧洲的平均延迟时间为40毫秒,...
今天下午遇到一个网友聊到他昨天新注册的一个域名,今天在去使用的时候发现域名居然不见。开始怀疑他昨天是否付款扣费,以及是否有实名认证过,毕竟我们在国内域名注册平台注册域名是需要实名认证的,大概3-5天内如果不验证那是不可以使用的。但是如果注册完毕的域名找不到那也是奇怪。同时我也有怀疑他是不是忘记记错账户。毕竟我们有很多朋友在某个商家注册很多账户,有时候自己都忘记是用哪个账户的。但是我们去找账户也不办...