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 | 书名 | 价格 | 出版社 | 数量 | 是否删除 |
3 | php 编程思想 | 99 | 1 | 是否删除 | |
6 | java编程思想 | 99 | 4 | 是否删除 | |
7 | php参考手册 | 65 | 1 | 是否删除 | |
2 | php 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;
}
}