整理了一下期末大作业的下单功能,觉得下单功能在购物网站必备且基础,现在把它整理出来,需要的小伙伴可以参考一下。该功能主要写了单个商品的下单,同时产生订单信息上传到数据库中的订单表,我写的订单表的字段主要是三个表的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>";
}
初学者,写的不是很好,不当之处还望指教