韩顺平 php视频教程 笔记心得 zend.framework.第17讲.综合应用-购物车3

ShoppingController.php 该控制器最复杂,默认点击一次购买一次,单击第二次相当于增加一次。类似于淘宝 天猫的购物

Mycart 表模型会和mycart表对应,会完成对购物车的各种操作。

<?php
/**
 * 这个类的一个对象实例表示一个购物车对象
 * Enter description here ...
 * @author harry_manage_top_100
 *
 */
class  MyCart extends  Zend_Db_Table{
    protected   $_primary='id';
 protected  $_name='mycart';
}

 

查看购物车

单例可以用session

session的重写机制  handle  可以直接把session往数据库里写。

 

书名价格出版社购买
php应用开发详解59电子工业出版社购买
php web服务开发45电子工业出版社购买
php 编程思想99电子工业出版社购买
php应用开发详解10机械工业出版社购买
php 企业级应用开发68电子工业出版社购买
java编程思想99快客出版社购买
php参考手册65电子工业出版社购买
php web服务开发550快客出版社购买

 

我的购物车

id书名价格出版社数量是否删除
3php 编程思想99 1是否删除
6java编程思想99 4是否删除
7php参考手册65 1是否删除
2php web服务开发45 3是否删除
购物车总价:??元  返回购物大厅

<?php
/**
 * 这个类的一个对象实例表示一个购物车对象,表模型里面也可以写方法
 * Enter description here ...
 * @author harry_manage_top_100
 *
 */
class  MyCart extends  Zend_Db_Table{
    protected   $_primary='id';
 protected  $_name='mycart';
 
 var  $total_price=0;
 
 //添加商品到购物车(把登录用户选中的商品保存到mycart表中)
 function addProduct($userId,$productId,$nums=1){
   $res=$this->fetchAll("userid=$userId  AND  bookid=$productId")->toArray();
   if(count($res)>0){
   //说明该用户的购物车记录中,已经购买过这个商品,因此这里我们需要更新数量就可以了。
   $old_nums=$res[0]['nums'];
   $data=array(
      'nums'=> $old_nums+1 
   );
   $where="userid=$userId  AND  bookid=$productId";
  
   $this->update($data, $where);
   return true;
  
  
   }else{
   $now=time();
   $data=array(
   'userid'=>$userId,
    'bookid'=>$productId,
    'nums'=>$nums,
    'cartDate'=>$now
   );
  
   //$mycartModel=new MyCart();
   if($this->insert($data)>0){
     /* $this->view->info='添加商品成功';
      $this->_forward('ok','global');*/
    return true;
     
   }else{
     return false;
   }
  
   }
 }
 
 //从购物车删除商品
 
 //修改商品
 
 //计算购物车的总价
 function  getTotalPrice(){
 
 }
 
 //显示购物车  抽象封装某个用户的购物车
 function  showMyCart($userId){
  $sql='select  b.id,b.name,b.price,m.nums  from book b,mycart m where b.id=m.bookid';
  $db=$this->getAdapter();
  $res=$db->query($sql)->fetchAll();
  //顺带把总价计算出来
  //$total_price=0;
  for($i=0;$i<count($res);$i++){
      $bookinfo=$res[$i];
      $this->total_price+=$bookinfo['price']*$bookinfo['nums'];
  }
     return $res;
 }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值