文档章节

PHP基于SESSION的超级好用购物车类

行走的螃蟹
 行走的螃蟹
发布于 2014/08/26 15:18
字数 412
阅读 104
收藏 1

「深度学习福利」大神带你进阶工程师,立即查看>>>

<?php 
session_start();
/*
 * 基于session的shopcart类
 * caroltc 
 * 312493732@qq.com
 * 2014/08/26
 * */

class Shopcart{
	/*
	 * template可拓展
	 * $shopcart = array(0=>array('goodsid'=>'','title'=>'','nums'=>'','price'=>''));
	*/
	/*添加商品到购物车*/
	public static function addGoodsToShopcart($goodsdata){
		$session_shopcart = Shopcart::getShopcart();
		if(count($session_shopcart)>0){
			/*如果购物车不为空*/
			for($i=0;$i<count($session_shopcart);$i++){
				if($session_shopcart[$i]['goodsid']==$goodsdata['id']){
					$session_shopcart[$i]['nums']++;
					$_SESSION['SJ_SHOPCART'] = serialize($session_shopcart);
					return ;
				}
			}
			$session_shopcart[count($session_shopcart)]=array('goodsid'=>$goodsdata['id'],'title'=>$goodsdata['title'],'nums'=>1,'price'=>$goodsdata['price']);
			$_SESSION['SJ_SHOPCART'] = serialize($session_shopcart);
		}else{
			$session_shopcart[count($session_shopcart)]=array('goodsid'=>$goodsdata['id'],'title'=>$goodsdata['title'],'nums'=>1,'price'=>$goodsdata['price']);
			$_SESSION['SJ_SHOPCART'] = serialize($session_shopcart);
		}
	}
	
	/*解析购物车*/
	public static function getShopcart(){
		if(!empty($_SESSION['SJ_SHOPCART'])){
			return unserialize($_SESSION['SJ_SHOPCART']);
		}else{
			$shopcart = array();
			$_SESSION['SJ_SHOPCART'] = serialize($shopcart);
			return $shopcart;
		}
	}
	
	
	/*获取购物车商品总数量 */
	public static function getShopcartNums(){
		if(!$_SESSION['SJ_SHOPCART']){
			return 0;
		}else{
			$session_shopcart = Shopcart::getShopcart();
			$n=0;
			for($i=0;$i<count($session_shopcart);$i++){
				$n += $session_shopcart[$i]['nums'];
			}
			return $n;
		}
	}
	
	/*获取购物车商品总价格 */
	public static function getShopcartPrice(){
		if(!$_SESSION['SJ_SHOPCART']){
			return 0;
		}else{
			$session_shopcart=Shopcart::getShopcart();
			$m=0;
			for($i=0;$i<count($session_shopcart);$i++){
				$m += $session_shopcart[$i]['nums']*$session_shopcart[$i]['price'];
			}
			return $m;
		}
	}
	
	/*添加购物车商品数量*/
	public static function setShopcartNumsAdd($goodsid){
		$session_shopcart=Shopcart::getShopcart();
		for($i=0;$i<count($session_shopcart);$i++){
			if($session_shopcart[$i]['goodsid']==$goodsid){
				$session_shopcart[$i]['nums']++;
				$_SESSION['SJ_SHOPCART'] = serialize($session_shopcart);
				return ;
			}
		}
	}
	
	/*减少购物车商品数量 */
	public static function setShopcartNumsDel($goodsid){
		$session_shopcart=Shopcart::getShopcart();
		for($i=0;$i<count($session_shopcart);$i++){
			if($session_shopcart[$i]['goodsid']==$goodsid){
				$session_shopcart[$i]['nums']--;
				if($session_shopcart[$i]['nums']<=0){
					array_splice($session_shopcart,$i,1); //如果商品数量为0则直接删除
				}
				$_SESSION['SJ_SHOPCART'] = serialize($session_shopcart);
				return ;
			}
		}
	}
	
	/*删除购物车一种商品*/
	public static function delShopcartGoods($goodsid){
		$session_shopcart=Shopcart::getShopcart();
		for($i=0;$i<count($session_shopcart);$i++){
			if($session_shopcart[$i]['goodsid']==$goodsid){
				array_splice($session_shopcart,$i,1); //直接删除
				$_SESSION['SJ_SHOPCART'] = serialize($session_shopcart);
				return ;
			}
		}
	}
	
	/*清空购物车*/
	public static function clearShopcart(){
		$_SESSION['SJ_SHOPCART'] = null;
	}
	
}
?>



行走的螃蟹

行走的螃蟹

粉丝 32
博文 48
码字总数 23634
作品 0
杭州
程序员
私信 提问
加载中
请先登录后再评论。
访问安全控制解决方案

本文是《轻量级 Java Web 框架架构设计》的系列博文。 今天想和大家简单的分享一下,在 Smart 中是如何做到访问安全控制的。也就是说,当没有登录或 Session 过期时所做的操作,会自动退回到...

黄勇
2013/11/03
3.5K
8
浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: <TextView 运行效果如下: 修改其文本内容...

樂天
2014/03/22
687
1
代码生成器--Codgen

Codgen是一个基于数据库元数据模型,使用freemarker模板引擎来构建输出的代码生成器。freemarker的数据模型结构通常来说都是一个Map树状结构模型,codgen也不例外,它的数据模型这棵树的根节...

黄天政
2013/01/29
1.4W
2
opm-server-mirror

代码更新 2009-11-25: 加入反爬虫功能。直接Web访问服务器将跳转到Google。 使用方法 下载index.zip 解压index.zip得到index.php 将index.php传到支持php和cURL的国外服务器上 打开 http:/...

luosheng86
2013/01/29
1K
0
Javascript图元绘制库--ternlight

基于HTML CANVAS API的Javascript库,提供在HTML页面上绘制图元——如流程图的能力。 目前已支持简单的矩形图元和图元间的连线(直线、直角连线两种),拖拽图元等能力。 该javascript librar...

fancimage1
2013/02/07
6.3K
1

没有更多内容

加载失败,请刷新页面

加载更多

Vue视频播放器 vue-video-player

Vue视频播放器 vue-video-player 本篇主要记录一下 在 vue 项目中 如何使用 vue-video-player 来作为视频播放器,由于最近在做博客的 轻松一刻模块 所以拿这个尝试一下 在此纪录一下 以及遇到...

AskaJohnny
10分钟前
5
0
Python是什么,Python语言及其特点简介

虽然软件产业的历史相对于人类历史只是白驹过隙,但世界上却存在非常多的编程语言,「Python」 就是其中之一。 Python 语言算得上一门“古老”的编程语言,Python 流行这么久,必然有它的独到...

前端老司机
19分钟前
11
0
serve 和 hhtp-server 对比

两个都是一个静态资源工具 npm i serve http-server -g https://github.com/http-party/http-server#readme https://github.com/vercel/serve#readme 由于遇到了cors问题, 目前选择http-se......

阿豪boy
20分钟前
8
0
java开发之阿里云接口发送短信验证码

随着互联网的兴起,各行各业的需求都在不断的增加。随着业务的扩大,企业给用户发送短信验证码的业务,也是如火如荼。在这里,calvin给各位开发者推荐阿里云短信平台。原因有二:1.接入较简单...

Arisono
30分钟前
9
0
如何从我的应用程序在Android的网络浏览器中打开URL? - How can I open a URL in Android's web browser from my application?

问题: How to open an URL from code in the built-in web browser rather than within my application? 如何通过内置Web浏览器而不是应用程序中的代码打开URL? I tried this: 我尝试了这个...

javail
31分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部