PHP怎么写一个购物车类,代码是什么
Admin 2022-05-31 群英技术资讯 525 次浏览
本文实例讲述了php+pdo实现的购物车类。分享给大家供大家参考,具体如下:
<?php session_start(); class Cart { public $pdo = null; public function __construct($config) { $host = $config['host']; $user = $config['user']; $db = $config['db']; $pwd = $config['pwd']; if (empty($_SESSION['user_id'])) { return show(0, '请先登录'); } try { $this->pdo = new PDO("mysql:host=$host;dbname=$db", "$user", "$pwd", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); $this->pdo->query("set names utf8"); } catch (PDOException $e) { echo $e->getMessage(); } } //添加商品到购物车 public function add_cart($productid, $num) { $sql = "select price from shop_product where id=?"; $stmt = $this->pdo->prepare($sql); $stmt->execute(array($productid)); $data = $stmt->fetch(PDO::FETCH_ASSOC); $price = $data['price']; $createtime = time(); $sql = "select * from shop_cart where productid=? and userid=?"; $stmt = $this->pdo->prepare($sql); $stmt->execute(array($productid, $_SESSION['user_id'])); $data = $stmt->fetch(PDO::FETCH_ASSOC); if ($data) { $sql = "update shop_cart set num=num+? where userid=? and productid=?"; $params = array($num, $_SESSION['user_id'], $productid); } else { $sql = "insert into shop_cart(productid,num,userid,price,createtime) values(?,?,?,?,?)"; $params = array($productid, $num, $_SESSION['user_id'], $price, $createtime); } $stmt = $this->pdo->prepare($sql); $stmt->execute($params); $rows = $stmt->rowCount(); return $rows ? show(1, 'ok', $rows) : show(0, 'fail'); } //修改购买数量 public function change_num($productid, $num) { $sql = "update shop_cart set num=? where userid=? and productid=?"; $stmt = $this->pdo->prepare($sql); $stmt->execute(array($num, $_SESSION['user_id'], $productid)); $rows = $stmt->rowCount(); return $rows ? show(1, 'ok', $rows) : show(0, 'fail'); } //清空购物车 public function clear_cart() { $sql = "delete from shop_cart where userid=?"; $stmt = $this->pdo->prepare($sql); $this->pdo->execute(array($this->user_id)); $rows = $stmt->rowCount(); return $rows ? show(1, 'ok', $rows) : show(0, 'fail'); } //从购物车中删除商品 public function remove_cart($productid) { $sql = "delete from shop_cart where productid=? and userid=?"; $stmt = $this->pdo->prepare($sql); $stmt->execute(array($productid, $_SESSION['user_id'])); $rows = $stmt->rowCount(); return $rows ? show(1, 'ok', $rows) : show(0, 'fail'); } } //处理数据 function show($status, $message, $data = array()) { $result = array( 'status' => $status, 'message' => $message, 'data' => $data ); exit(json_encode($result)); } //简单使用 $user = [ 'host' => '', 'user' => 'root', 'pwd' => 'root', 'db' => 'shop', ]; $productid = intval($_POST['productid']); $num = intval($_POST['num']); $cart = new Cart($user); //添加到购物车 $cart->add_cart($productid, $num); //删除指定的商品 $cart->remove_cart($productid); //清空 $cart->clear_cart(); ?>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在PHP中有很多用来排序数组函数,这篇文章就主要介绍sort函数。PHP的sort函数是用来对数值数组进行升序排序的,也就是从低到的到高排序。下面我们就来了解一下sort函数以及实例。
在thinkphp5中,join用于根据两个或者多个表中列之间的关系,从这些表中查询数据,是连贯操作方法之一,返回的结果是一个模型对象,语法为“join ( 要关联的表名以及别名 [ 关联条件 [ 关联类型]] )”。
这篇文章主要介绍了使用 PHP Masked Package 屏蔽敏感数据的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
从4.0版本开始Swoole提供了完整的协程(Coroutine)+通道(Channel)特性,带来全新的CSP编程模型。Swoole提供了异步任务处理的功能,可以投递一个异步任务到TaskWorker进程池中执行,不影响当前请求的处理速度
冒泡排序、选择排序、插入排序、快速排序这四种PHP中经典的排序方式是经常能用到的,所以学习PHP一定要掌握这些。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008