php 实现购物车
<?phpclass Cart{ public function Cart() { if(!isset($_SESSION['cart'])){ $_SESSION['cart'] = array(); } } /* 添加商品 param int $id 商品主键 string $name 商品名称 float $price 商品价格 int $num 购物数量 */ public function addItem($id,$name,$price,$num,$img) { //如果该商品已存在则直接加其数量 if (isset($_SESSION['cart'][$id])) { $this->incNum($id,$num); return; } $item = array(); $item['id'] = $id; $item['name'] = $name; $item['price'] = $price; $item['num'] = $num; $item['img'] = $img; $_SESSION['cart'][$id] = $item; } /* 修改购物车中的商品数量 int $id 商品主键 int $num 某商品修改后的数量,即直接把某商品 的数量改为$num */ public function modNum($id,$num=1) { if (!isset($_SESSION['cart'][$id])) { return false; } $_SESSION['cart'][$id]['num'] = $num; } /* 商品数量+1 */ public function incNum($id,$num=1) { if (isset($_SESSION['cart'][$id])) { $_SESSION['cart'][$id]['num'] += $num; } } /* 商品数量-1 */ public function decNum($id,$num=1) { if (isset($_SESSION['cart'][$id])) { $_SESSION['cart'][$id]['num'] -= $num; } //如果减少后,数量为0,则把这个商品删掉 if ($_SESSION['cart'][$id]['num'] <1) { $this->delItem($id); } } /* 删除商品 */ public function delItem($id) { unset($_SESSION['cart'][$id]); } /* 获取单个商品 */ public function getItem($id) { return $_SESSION['cart'][$id]; } /* 查询购物车中商品的种类 */ public function getCnt() { return count($_SESSION['cart']); } /* 查询购物车中商品的个数 */ public function getNum(){ if ($this->getCnt() == 0) { //种数为0,个数也为0 return 0; } $sum = 0; $data = $_SESSION['cart']; foreach ($data as $item) { $sum += $item['num']; } return $sum; } /* 购物车中商品的总金额 */ public function getPrice() { //数量为0,价钱为0 if ($this->getCnt() == 0) { return 0; } $price = 0.00; $data = $_SESSION['cart']; foreach ($data as $item) { $price += $item['num'] * $item['price']; } return sprintf("%01.2f", $price); } /* 清空购物车 */ public function clear() { $_SESSION['cart'] = array(); }} |
php 实现购物车的更多相关文章
- 如何一步一步用DDD设计一个电商网站(十)—— 一个完整的购物车
阅读目录 前言 回顾 梳理 实现 结语 一.前言 之前的文章中已经涉及到了购买商品加入购物车,购物车内购物项的金额计算等功能.本篇准备把剩下的购物车的基本概念一次处理完. 二.回顾 在动手之前我对之 ...
- session实现购物车
为实现简单的购物功能(购物车添加.账户查看.购物车商品删除.实时的购物商品数量及价格的计算显示.购物车商品数量可手动输入等),用session实现了一简单的以php语言为基础.连接MySQL数据库的购 ...
- 如何一步一步用DDD设计一个电商网站(六)—— 给购物车加点料,集成售价上下文
阅读目录 前言 如何在一个项目中实现多个上下文的业务 售价上下文与购买上下文的集成 结语 一.前言 前几篇已经实现了一个最简单的购买过程,这次开始往这个过程中增加一些东西.比如促销.会员价等,在我们的 ...
- PHP之购物车的代码
该文章记录了购物车的实现代码,仅供参考 book_sc_fns.php <?php include_once('output_fns.php'); include_once('book_fns. ...
- 使用session页面控制登录入口及购物车效果的实现
由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容.实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只 ...
- python学习笔记(列表、元组、购物车实例)
一.列表 列表和字典是最常用的两种数据类型 1. 需求:怎么存放班级80多人的姓名,如何实现? names = ["Zhangyang","Guyun",&qu ...
- 简单实用angular.js购物车功能
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Java Web之网上购物系统(注册、登录、浏览商品、添加购物车)
眼看就要期末了,我的专业课也迎来了第二次的期末作业---------<网上购物系统>.虽然老师的意图是在锻炼我们后台的能力,但是想着还是不利用网上的模板,准备自己写,以来别人写的静态页看不 ...
- 使用MongoDB和JSP实现一个简单的购物车系统
目录 1 问题描述 2 解决方案 2.1 实现功能 2.2 最终运行效果图 2.3 系统功能框架示意图 2.4 有关MongoDB简介及系统环境配置 2.5 核心功能代码讲解 ...
- js抛物线动画——加入购物车动效
参考文章:http://www.zhangxinxu.com/wordpress/2013/12/javascript-js-元素-抛物线-运动-动画/ parapola.js /*! * by zh ...
随机推荐
- Android下如何理解onMeasure,onLayout的过程
在Android中view如何完成绘制这个过程介绍了很多,但是很多理论化的东西,最近重新整理一下,通俗的讲解一下. View绘制过程就好比你向银行贷款, 在执行onMeasure的时候,好比银行告诉你 ...
- UVA10534-----Wavio Sequence-----动态规划之LIS
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- 解决Android单个dex文件不能超过65536个方法问题
当我们的项目代码过大时,编译运行时会报Unable to execute dex: method ID not in[0, 0xffff]: 65536)错误.当出现这个错误时说明你本身自己的工程代码 ...
- Java程序性能分析工具Java VisualVM(Visual GC)—程序员必备利器
VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监控垃圾回收 ...
- HID Boot device.
整理这篇文章的目的: 客户会有用到遥控器部分(遥控器操作flow:当按下某个键时,MCU会透过UR送command给TP,TP吃到后再透过微软标准的keyboard上报) 要求:在BIOS设定阶段,遥 ...
- JQuery动态增加删除元素
<form action="" method="post" enctype="multipart/form-data"> < ...
- canvas-画蜗牛
<!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...
- C#。总结
数据类型--变量与常量--运算符与表达式--语句(if,for)--数组--函数--结构体一.数据类型: (一)内建类型 整型(int short long byte uint ushort ulon ...
- Java:单例模式的七种写法(转载)
第一种(懒汉,线程不安全): package Singleton; /** * @echo 2013-10-10 懒汉 线程不安全 */ public class Singleton1 { priva ...
- ASP.net导出Excel的几种方式
2.导出多个sheet页的Excel 在Office Excel 中设计好 导出的格式,然后另存为xml电子表格,然后用记事本打开保存的xml文件,复制内容放入程序Response.Write() 输 ...