韩顺平zend+framework 视频教程 笔记心得 第18讲+综合应用-购物车4
2012-07-31 17:25 java环境变量 阅读(298) 评论(0) 编辑 收藏 举报批量数量更新的写法:
如何能批量取得,请注意红色标记的写法。 不用中括号 就认为不是数组,只能接受一个参数,达不到批量更新的效果。
<html>
<head><title>我的购物车</title>
<script type="text/javascript">
function goMyCart(){
window.location.href="/shopping/showcart";
}
</script>
</head>
<body>
<h1>我的购物车</h1>
<form action="" method="post">
<table width="700px">
<tr>
<td>id</td>
<td>书名</td>
<td>价格</td>
<td>出版社</td>
<td>数量</td>
<td>是否删除</td>
</tr>
<?php foreach ($this->books as $book) {?>
<tr>
<td><?=$book['id']?></td>
<td><?=$book['name']?></td>
<td><?=$book['price']?></td>
<td><?=$book['publishHouse']?></td>
<input type="hidden" name='bookids[]' value=<?=$book['id']?> >
<td><input type='text' name='booknums[]' value='<?=$book['nums']?>'></td>
<td><a href='/shopping/delproduct?id=<?=$book['id']?>'>是否删除</a></td>
</tr>
<?php }?>
<tr>
<td colspan="6"><input type="submit" value="更新数量" />
购物车总价:<?=$this->total_price?>元
<a href="/hall/gohallui">返回购物大厅</a>
</td>
</tr>
<tr>
<td><input type="button" onclick="goMyCart();" value="查看购物车"></td>
</tr>
<tr>
<td colspan="6">
<input type="button" onclick="" value="清空购物车">
<input type="button" onclick="confirmOrder();" value="生成订单">
</td>
</tr>
</table>
</form>
</body>
</html>
//响应update商品的请求
public function updatecartAction(){
$bookids=$this->getRequest()->getParam('bookids');
$booknums=$this->getRequest()->getParam('booknums');
$mycart=new MyCart();
session_start();
$userId=$_SESSION['loginuser']['id'];
for($i=0;$i<count($bookids);$i++)
{
$mycart->updateProduct($userId, $bookids[$i], $booknums[$i]);
}
/*for($i=0;$i<count($bookids);$i++)
{
echo $bookids[$i].'-----'.$booknums[$i].'<br/>';
}
exit();*/
//$arr=$this->getRequest()->getParams(); //用数组也可以获得
$this->view->info='商品从购物车中更新成功';
$this->view->gourl='/shopping/showcart';
$this->_forward('ok','global');
}
注意session失效引起的错误,呵呵~~~~~~~~~~~~~~~~~~~~~~~~
订单表为什么要分拆成两张表:
订单表的最佳设计方式,有效的避免了冗余,符合数据库设计第三范式。3NF
如果设计成一个订单表,会有一部分公用的信息,供货商,日期,结账方式,日期,公用信息主要记载订单表订单的一些相关信息,需要拆分这一部分表。
公用的信息做成订单表。
特别的信息做成订单细节表。
拆分为order表 和orderitem表(订单细节表)
Order
id userid 日期 送货方式 结账方式
Orderitem
id productid nums