很久没有上论坛了,一直牵挂着。项目结束之际,我上来冒个泡泡谈一下项目中的订单部分感受。
功能主要是
商品点击量:在商量打开页面时,点击量加1更新到数据库就可以了,这个没有难的,
商品销量:销量的话如果在前台订单提交成功就处理,就有点不合适,因为订单产生,并不代表支付成功,所以我把销量处理放到了后台,订单管理里面的发货处理时执行。
数据库部分表:
商品表goods
订单表orders
订单详情表xiangqing
关联性:
xiangqing.orderid=orders.id
xiangqing.goodsid=goods.id
思路:
就像初中学习的几何证明题目一样,从两端向中间推理。
不要急着想如何一次性写出SQL语句来,
先写出最终的SQL语句,如果实现需要那些值。
再根据现有的条件能查出什么来,这里面的字段有没有其它库里面的,如果有还有根据这个如何查询?(累了就不展开写了,直接给代码)
session_start();
//判断用户是否登陆,没有登陆则跳转登陆界面
if(empty($_SESSION['loginuser'])){
//跳转登陆界面
header("Location:login.php");
//退出
exit();
}
//1 导入配置信息
require
'../public/conn.php';
//2连接MYSQL,选择数据库
$link=@mysql_connect(HOST,USER,PASS)
or die
('连接数据库失败');
mysql_select_db(DB,$link);
$nosend=$_GET['nosend'];//获取取消发货订单的ID
$send=$_GET['send'];//获取已发货订单的ID
if($send
&& $send!=""){//确保提交的有值存在
$sql="update orders set stats='1' where
id={$send}";//构造sql语句
$result=mysql_query($sql,$link);//更新发货状态
if(mysql_affected_rows($link)>0){//判断影响的行数,也就是更改状态是否成功。
//统计出订单下有多少商品数量
$sqla="select
count(goodsid) from xiangqing where
orderid=26";
$rea=mysql_query($sqla,$link);
$sum=mysql_result($rea,0,0);
//循环出详情表中的商品ID,并查询出原商品的数量相应递增递减
$i=0;
for($i=0;$i<$sum;$i++){
//查询订单表中商品ID下的商品ID与数量
$sqlb="select
goodsid,num from xiangqing where
orderid=26";
$reb=mysql_query($sqlb,$link);
$goodsid=mysql_result($reb,$i,0);//将订单表中商品ID赋值给GOODSID
$num=mysql_result($reb,$i,1);//将订单表中商品数据赋值给NUM
//查询GOODS表中历史销量
$sqlc="select
salenum from goods where
id=$goodsid";
$rec=mysql_query($sqlc,$link);
$salenum=mysql_result($rec,0,0);//确保ID的唯一性
//销量处理
$salenum+=$num;
//将处理的结果写回数据库
$sqld="update
goods set salenum=$salenum where
id=$goodsid";
mysql_query($sqld,$link);
//如果更新成功则返回销量处理成功,否则返回假。
if(mysql_affected_rows($link)>0){//这步条件不足 问老师
echo
"";
}
}
}else{
echo
"";
}
}
if($nosend && $nosend!=""){
$sql="update orders set
stats='0' where
id={$nosend}";
mysql_query($sql,$link);
if(mysql_affected_rows($link)>0){
//统计出订单下有多少商品数量
$sqla="select
count(goodsid) from xiangqing where
orderid=26";
$rea=mysql_query($sqla,$link);
$sum=mysql_result($rea,0,0);
//循环出详情表中的商品ID,并查询出原商品的数量相应递增递减
$i=0;
for($i=0;$i<$sum;$i++){
//查询订单表中商品ID下的商品ID与数量
$sqlb="select
goodsid,num from xiangqing where
orderid=26";
$reb=mysql_query($sqlb,$link);
$goodsid=mysql_result($reb,$i,0);//将订单表中商品ID赋值给GOODSID
$num=mysql_result($reb,$i,1);//将订单表中商品数据赋值给NUM
//查询GOODS表中历史销量
$sqlc="select
salenum from goods where
id=$goodsid";
$rec=mysql_query($sqlc,$link);
$salenum=mysql_result($rec,0,0);//确保ID的唯一性
//销量处理
$salenum-=$num;
//将处理的结果写回数据库
$sqld="update
goods set salenum=$salenum where
id=$goodsid";
mysql_query($sqld,$link);
//如果更新成功则返回销量处理成功,否则返回假。
if(mysql_affected_rows($link)){//这步条件不足 问老师
echo
"";
}
}
}else{
echo
"";
}
}
ps:项目赶完了,身体也感冒了,兄弟们要注意身体呀!
接来下要项目加强的内容有:
SEO
标题
关键词
描述调用
安全措施
防注入
高级搜索,搜索时关键词变红,防百度(已完成)
修改注册时邮编采用正规与字符替换两种方式(已完成)
原文地址:
阅读(396) | 评论(0) | 转发(0) |