韩顺平zend+framework 视频教程 笔记心得 第18讲+综合应用-购物车4
2012-07-31 17:25
645 查看
批量数量更新的写法:
如何能批量取得,请注意红色标记的写法。 不用中括号 就认为不是数组,只能接受一个参数,达不到批量更新的效果。
<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
如何能批量取得,请注意红色标记的写法。 不用中括号 就认为不是数组,只能接受一个参数,达不到批量更新的效果。
<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
相关文章推荐
- 韩顺平zend+framework 视频教程 笔记心得 第18讲+综合应用-购物车4
- 韩顺平 php视频教程 笔记心得 zend.framework.第16讲.综合应用-购物车2
- 韩顺平zend+framework sendmail 视频教程 笔记心得 源代码下载 第19讲+综合应用-购物车5
- 韩顺平zend+framework 视频教程 笔记心得 源代码下载 第20讲+综合应用-购物车5
- 韩顺平 php视频教程 笔记心得 zend.framework.第16讲.综合应用-购物车2
- 韩顺平 php视频教程 笔记心得 zend.framework.第17讲.综合应用-购物车3
- 韩顺平 php视频教程 笔记心得 zend.framework.第17讲.综合应用-购物车3
- 传智播客 韩顺平 php视频教程 笔记心得 zend.framework.第15讲.综合应用-购物车1
- 传智播客 韩顺平 php视频教程 笔记心得 zend.framework.第15讲.综合应用-购物车1
- 第1讲韩顺平 PHP视频教程 zend framework zend介绍 zend快速入门 韩顺平php视频教程ppt 笔记心得
- 韩顺平 zend framework 视频教程 源代码和笔记心得第5讲——第6讲 投票系统源代码
- 韩顺平_php从入门到精通_视频教程_第4讲_图像_表格_实际应用-菜谱_课堂练习-课程表_学习笔记_源代码图解_PPT文档整理
- 韩顺平 zend framework 视频教程 源代码和笔记心得第5讲——第6讲 投票系统源代码
- 韩顺平_php从入门到精通_视频教程_第14讲_盒子模型经典应用②_作业布置_学习笔记_源代码图解_PPT文档整理
- 韩顺平 PHP视频教程 zend framework 第1讲 ——第4讲 笔记心得
- 传智播客 韩顺平 php视频教程 笔记心得 zend.framework.第7——14讲 数据采集系统源代码
- 韩顺平_php从入门到精通_视频教程_第18讲_浮动_学习笔记_源代码图解_PPT文档整理
- 传智播客 韩顺平 php视频教程 笔记心得 zend.framework.第7——14讲 数据采集系统源代码
- 韩顺平_php从入门到精通_视频教程_第13讲_选择器使用细节_块元素和行内元素_盒子模型_盒子模型经典应用①_学习笔记_源代码图解_PPT文档整理
- 韩顺平_PHP从入门到精通视频教程笔记 (74)OOP