Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1627466
  • 博文数量: 1481
  • 博客积分: 26784
  • 博客等级: 上将
  • 技术积分: 17045
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-12 09:22
文章分类

全部博文(1481)

文章存档

2014年(10)

2013年(353)

2012年(700)

2011年(418)

分类: 系统运维

2011-10-20 09:23:47

很久没有上论坛了,一直牵挂着。项目结束之际,我上来冒个泡泡谈一下项目中的订单部分感受。
功能主要是
  商品点击量:在商量打开页面时,点击量加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) |
给主人留下些什么吧!~~