• 技术文章 >后端开发 >php教程

    完整示例php+pdo实现的购物车类

    coldplay.xixicoldplay.xixi2020-07-23 16:43:51转载775

    本文实例讲述了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();
    ?>

    相关学习推荐:PHP编程从入门到精通

    以上就是完整示例php+pdo实现的购物车类的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:jb51,如有侵犯,请联系admin@php.cn删除
    专题推荐:php pdo 购物车类
    上一篇:示例PHP实现单文件、多个单文件、多文件上传函数的封装 下一篇:示例php实现保存周期为1天的购物车类
    大前端线上培训班

    相关文章推荐

    • PHP session如何实现购物车功能• 一起看看php实现产品加入购物车功能(1)• 一起看看php实现购物车产品删除功能(2)• php如何实现购物车功能

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网