购物网站的下单功能

整理了一下期末大作业的下单功能,觉得下单功能在购物网站必备且基础,现在把它整理出来,需要的小伙伴可以参考一下。该功能主要写了单个商品的下单,同时产生订单信息上传到数据库中的订单表,我写的订单表的字段主要是三个表的id,将用户、商品、订单的id联系起来。

下单按钮

        //下单按钮,并将该商品id传到处理页面,下面的id是通过数据库查询得到的
        <input type="button" onclick="document.location = 'detailed_purchase.php?id=<?php echo $row['id'] ?>'" value="下单"/>
</html>

触发按钮后,跳转到该页面进行数据处理

<?php
session_start();	//开启会话控制
include'conn.php';	//连接数据库
$arg = $_GET['id']; //商品id
//   登录才能下单 
if (isset($_SESSION['user'])) {
    //   查询该id商品的信息 
    $sql = "select * from shangpin where id = '$arg'";
    $res = $conn->query($sql);
    //   查询到数据可进行订单交互 
    if ($row = mysqli_fetch_array($res)) {
        $sum = 0;    //用于判断库存是否大于0
        if ($row['库存'] > $sum) {      //库存充足
            $stock = $row['库存'] - 1;      //对库存进行更改
            $number = $row['销量'] + 1;     //对销量进行更改
            $userid = $_SESSION['user'];    //获取登录用户id
            $sqlule = "update shangpin set 库存=$stock,销量=$number where id = '$arg'";     //进行商品信息更新
            $resule = $conn->query($sqlule);
            if ($resule) {  //更新成功
                $time = date("Y-m-d H:i:s");    //获取当前时间
                //插入订单信息
                $sqluser = "insert into orderinfo values('','$userid','$arg','$time')";     
                $resuser = $conn->query($sqluser);
                //插入成功
                if ($resuser) {     
                    $sqldel = "delete from cart where goods_id = '$arg'"; //商品id
                    $resdel = $conn->query($sqldel);
                    下单成功返回点击下单的那个页面
                    echo "<script>alert('下单成功');document.location='detailed.php?id=$arg';</script>";
                } 
                //插入失败
				else {    
				订单信息生成失败,将商品数据还原
                    $stock = $row['库存'] + 1;
                    $number = $row['销量'] - 1;
                    $userid = $_SESSION['user'];
                    $sqlule2 = "update shangpin set 库存=$stock,销量=$number where id = '$arg'";   //将商品信息还原
                    $resule2 = $conn->query($sqlule2);
                    echo "<script>alert('下单失败');document.location='detailed.php?id=$arg';</script>";
                }
            }
            //更新失败
            else {
                echo "<script>alert('下单失败');document.location='detailed.php?id=$arg';</script>";
            }
        }
        //库存不足
        else {
            echo "<script>alert('库存不足');document.location='detailed.php?id=$arg';</script>";
        }
    } else {
        echo "<script>alert('数据异常');document.location='detailed.php?id=$arg';</script>";
    }
}
// 没登录跳转到登录界面
else {
    echo "<script>alert('您还未登录');document.location='Logon.php';</script>";
}

初学者,写的不是很好,不当之处还望指教

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值