当前位置:首页 > PHP

php实现提交订单列表

2026-04-03 12:26:46PHP

PHP 实现提交订单列表

数据库设计

创建订单表 orders 存储订单信息,字段包括订单ID、用户ID、商品信息、订单状态、创建时间等。

CREATE TABLE `orders` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `product_info` text NOT NULL,
  `status` tinyint(1) DEFAULT 0,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
);

订单提交表单

创建HTML表单收集订单信息,提交到PHP处理脚本。

php实现提交订单列表

<form action="submit_order.php" method="post">
  <input type="text" name="product_name" placeholder="商品名称">
  <input type="number" name="quantity" placeholder="数量">
  <input type="text" name="address" placeholder="收货地址">
  <button type="submit">提交订单</button>
</form>

订单处理脚本

创建 submit_order.php 处理表单提交,将订单数据存入数据库。

<?php
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');

// 检查连接
if ($conn->connect_error) {
  die("连接失败: " . $conn->connect_error);
}

// 获取表单数据
$product_name = $_POST['product_name'];
$quantity = $_POST['quantity'];
$address = $_POST['address'];
$user_id = 1; // 假设当前用户ID为1

// 准备SQL并绑定参数
$stmt = $conn->prepare("INSERT INTO orders (user_id, product_info, status) VALUES (?, ?, ?)");
$product_info = json_encode(['name' => $product_name, 'quantity' => $quantity, 'address' => $address]);
$status = 0; // 0表示待处理
$stmt->bind_param("isi", $user_id, $product_info, $status);

// 执行SQL
if ($stmt->execute()) {
  echo "订单提交成功";
} else {
  echo "错误: " . $stmt->error;
}

$stmt->close();
$conn->close();
?>

订单列表显示

创建 order_list.php 从数据库获取订单列表并显示。

php实现提交订单列表

<?php
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');

// 检查连接
if ($conn->connect_error) {
  die("连接失败: " . $conn->connect_error);
}

// 查询订单
$sql = "SELECT * FROM orders WHERE user_id = 1 ORDER BY created_at DESC";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  while($row = $result->fetch_assoc()) {
    $product_info = json_decode($row['product_info'], true);
    echo "订单ID: " . $row['id'] . "<br>";
    echo "商品: " . $product_info['name'] . "<br>";
    echo "数量: " . $product_info['quantity'] . "<br>";
    echo "状态: " . ($row['status'] ? '已完成' : '处理中') . "<br><hr>";
  }
} else {
  echo "暂无订单";
}

$conn->close();
?>

安全注意事项

对用户输入进行验证和过滤,防止SQL注入。

$product_name = htmlspecialchars(strip_tags($_POST['product_name']));
$quantity = filter_var($_POST['quantity'], FILTER_SANITIZE_NUMBER_INT);
$address = htmlspecialchars(strip_tags($_POST['address']));

性能优化

对于大量订单,实现分页功能。

$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$limit = 10;
$offset = ($page - 1) * $limit;
$sql = "SELECT * FROM orders WHERE user_id = 1 ORDER BY created_at DESC LIMIT $limit OFFSET $offset";

标签: 订单列表
分享给朋友:

相关文章

vue实现竖向列表

vue实现竖向列表

Vue 实现竖向列表的方法 使用 v-for 指令 通过 Vue 的 v-for 指令可以轻松渲染一个竖向列表。假设有一个数组 items,可以通过以下方式渲染: <template>…

vue实现卡片列表

vue实现卡片列表

Vue 实现卡片列表 使用 v-for 动态渲染卡片列表 通过 Vue 的 v-for 指令可以动态渲染卡片列表,数据通常存储在组件的 data 或通过 API 获取。 <template&g…

vue实现索引列表

vue实现索引列表

Vue 实现索引列表 使用第三方库(如 better-scroll 或 vue-index-list) 安装 better-scroll 或 vue-index-list 库,可以快速实现带索引的列表…

vue实现多选列表

vue实现多选列表

Vue 实现多选列表的方法 使用 v-model 绑定数组 在 Vue 中,可以利用 v-model 指令绑定一个数组来实现多选功能。当用户选择多个选项时,选中的值会自动添加到数组中。 <te…

vue实现列表排序

vue实现列表排序

实现列表排序的方法 在Vue中实现列表排序可以通过多种方式完成,以下是几种常见的方法: 使用JavaScript的sort方法 在Vue的methods中定义一个排序函数,利用JavaScript…

vue实现订单页面

vue实现订单页面

Vue 实现订单页面的关键步骤 页面结构设计 使用 Vue 单文件组件(SFC)组织订单页面,分为订单列表、订单详情、支付状态等模块。通过路由配置实现页面跳转,例如 /orders 显示订单列表,/o…