session购物车
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
/** * 函数: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 ); } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
/** * 函数: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 ); } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
/** * 函数:clearAll * 功能:清空购物车中的所有物品信息 * 简介:根据提供的购物车名$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 ; } } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
/** * 函数: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 ); } |
1
2
3
4
5
6
7
8
9
10
11
|
/** * 函数:searchGoods * 功能:查找购物车物品信息 * 简介:可供添加物品操作调用,如果所添加物品已存在则购物数量+1,反之将物品存入购物车 * 时间:2011年8月1日19:14:23 * 作者:by zhjp * Enter description here ... */ public function searchGoods(){ } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
/** * 函数: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 ; } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
/** * 函数:getCartList * 功能:获取购物车所有的商品数据【二维数组格式呈现TDArr】 * 简介:将购物车中的全部商品数据转化成二维数组,不带HTML代码符 * 时间:2011年7月28日 23:56:38 * 作者:zhjp * 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 ; } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/** * 函数:_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 ; } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
/** * 函数:_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 ); } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
/** * 函数:_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 ;} //指定物品购买数量-1 if ( $_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 ); } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/** * 函数:_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 ; } } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
/** * 函数:_countItems * 功能:统计购物车物品总项目 * 简介:总项目[ITEMS] * 时间:2011年7月31日 03:23:20 * 作者:by zhjp * Enter description here ... * @param String $cartName */ private function _countItems( $cartName ){ if (!isset( $_SESSION [ $cartName ])){ return ;} $count =0; switch ( $cartName ){ case 'flyCart' : break ; case 'mallCart' : $cartList = $this ->getCartList( $cartName ); foreach ( $cartList as $k => $v ){ if ( is_array ( $v )){ $count ++; } } $_SESSION [ $cartName ][ 'ITEMS' ]= $count ; break ; case 'hotelCart' : break ; } } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/** * 函数:_countTotal * 功能:统计购物车物品总数量 * 简介:总数量[TOTAL] * 时间:2011年7月31日 03:27:11 * 作者:by zhjp * Enter description here ... * @param String $cartName */ private function _countTotal( $cartName ){ if (!isset( $_SESSION [ $cartName ])){ return ;} $count =0; switch ( $cartName ){ case 'flyCart' : break ; case 'mallCart' : $cartList = $this ->getCartList( $cartName ); foreach ( $cartList as $k => $v ){ $count += $v [ 'numb' ]; } $_SESSION [ $cartName ][ 'TOTAL' ]= $count ; break ; case 'hotelCart' : break ; } } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/** * 函数:_updateCart * 功能:更新统计购物车基本信息 * 简介:重新统计购物车基本信息【总项目ITEMS/总金额MONEY/总数量TOTAL] * 时间:2011年7月31日 03:31:18 * 作者:by zhjp * Enter description here ... * @param String $cartName */ private function _updateCart( $cartName ){ $this ->_countItems( $cartName ); $this ->_countMoney( $cartName ); $this ->_countTotal( $cartName ); } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
/* Source Host : localhost:3306 Source Database : db_xiaohan Target Server Type : MYSQL Date: 2011-08-05 08:46:10 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `ixh_mallgoods` -- ---------------------------- DROP TABLE IF EXISTS `ixh_mallgoods`; CREATE TABLE `ixh_mallgoods` ( `id` int (11) NOT NULL AUTO_INCREMENT, `code` varchar (255) DEFAULT NULL , ` name ` varchar (255) DEFAULT NULL , `extend` varchar (255) DEFAULT NULL , `price` float DEFAULT NULL , PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of ixh_mallgoods -- ---------------------------- INSERT INTO ixh_mallgoods VALUES ( '1' , 'CLELE-GS1001' , '商品一' , '小尺寸' , '22.5' ); |