很久没有上论坛了,一直牵挂着。项目结束之际,我上来冒个泡泡谈一下项目中的订单部分感受。
功能主要是
商品点击量:在商量打开页面时,点击量加1更新到数据库就可以了,这个没有难的,
商品销量:销量的话如果在前台订单提交成功就处理,就有点不合适,因为订单产生,并不代表支付成功,所以我把销量处理放到了后台,订单管理里面的发货处理时执行。
数据库部分表:
商品表goods
订单表orders
订单详情表xiangqing
关联性:
xiangqing.orderid=orders.id
xiangqing.goodsid=goods.id
思路:
就像初中学习的几何证明题目一样,从两端向中间推理。
不要急着想如何一次性写出SQL语句来,
先写出最终的SQL语句,如果实现需要那些值。
再根据现有的条件能查出什么来,这里面的字段有没有其它库里面的,如果有还有根据这个如何查询?(累了就不展开写了,直接给代码)
<?php
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 "<script>alert('处理成功!');window.location='orderlist.php'</script>";
}
}
}else{
echo "<script>alert('处理失败!');window.location='orderlist.php'</script>";
}
}
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 "<script>alert('处理成功!');window.location='orderlist.php'</script>";
}
}
}else{
echo "<script>alert('处理失败!');window.location='orderlist.php'</script>";
}
}
ps:项目赶完了,身体也感冒了,兄弟们要注意身体呀!
接来下要项目加强的内容有:
SEO
标题
关键词
描述调用
安全措施
防注入
高级搜索,搜索时关键词变红,防百度(已完成)
修改注册时邮编采用正规与字符替换两种方式(已完成)
分享到:
相关推荐
高*路由usbip内核模块usbip-core.ko\usbip-host.ko适用内核版本3.10.14
大陆集团引领研究“Ko-HAF-协同高度自动驾驶”项目.pdf
开源项目-kovetskiy-ko.zip,配置的ko
easyUI ko绑定
ERP中内部订单用来规集... 期末处理:可将日常内部订单规集的成本费用在期末进行重分配(Tcode:KSW1/KSW5)或结算(Tcode:KO88)到目标成本对象,这些成本对象包括订单/项目/成本中心/网络/资产/Co-PA的获利段/费用科目等。
KO电玩城TV版, 用于电视游戏的平台, 可接手柄, 丰富的在线游戏和单机游戏.
imx6使用ov5642摄像头时需要预先挂载的ko文件
ch341,pl2303,cp210x编译好的ko文件
将ko文件放到device\**\**\preinstall\modules目录下面。 在device\**\**\init.maxim.rc中添加安装ko的命令, # for nfgs-3g insmod /system/lib/modules/ntfs-3g.ko
Rt5370 脚本和.ko文件
介绍android linux ko文件编译
hello.ko模块 2种makefile
linux 如何编译第一个模块 hello.ko
linux ko compile .zip linux ko compile .zip
针对FREEBSD9.2及以下版本识别不到rtl8168网卡,编译的rtl8168网卡驱动 if_re.ko, 使用方法,下载文件保存到/boot/kernel/目录,修改/boot/default/load.conf 中的if_re_load="no" 为yes 重启即可解决驱动问题。
每个传感器包括ko驱动文件已经源代码,你可以把ko文件下载到板子上,然后根据你的毕设需要修改源文件,之后通过arm-linux-gcc编译即可移植至6818开发板,不在需要配置虚拟机的环境,傻瓜操作!每个传感器文件里面有...
vmmon.ko linux/centos下安装VMWARE所需的make包
rtl8821cu 网卡 编译好的ko文件 主要是针对有该类型芯片的无线网卡在linux中无法被识别的问题,在我的博客中有介绍详细的使用方法
某品牌路由器刷机不死启动必备工具,懒得四处找了,自已备用,newifi d2,简单3步: 1,打开SSH,... 2,下载newifi-d2-jail-break.ko到/tmp 3,insmod newifi-d2-jail-break.ko
tun/tap虚拟网卡驱动