首頁 >後端開發 >php教程 >如何使用PHP實現一個簡單的線上訂單管理系統

如何使用PHP實現一個簡單的線上訂單管理系統

WBOY
WBOY原創
2023-09-25 11:13:022196瀏覽

如何使用PHP實現一個簡單的線上訂單管理系統

如何使用PHP實作一個簡單的線上訂單管理系統

一、簡介

線上訂單管理系統是一種常見的電商應用,它可以幫助商家有效管理訂單流程、加快訂單處理速度、提升客戶滿意度。本文將介紹如何使用PHP實現一個簡單的線上訂單管理系統,包括實現訂單的建立、修改、查詢和刪除等功能。本文假設讀者已經具備一定的PHP基礎知識。

二、系統需求

線上訂單管理系統需要滿足以下基本需求:

  1. 登入功能:管理員可以透過使用者名稱和密碼登入系統。
  2. 訂單管理功能:管理員可以建立、修改、查詢和刪除訂單。
  3. 訂單列表功能:管理員可以查看訂單的列表,並依條件篩選和排序。
  4. 訂單詳情功能:管理員可以查看訂單的詳細信息,包括訂單號、客戶資訊、商品資訊等。
  5. 資料庫支援:系統需要使用MySQL資料庫儲存訂單資料。

三、 實作步驟

  1. 建立資料庫

#首先,我們需要建立一個資料庫來儲存訂單資料。使用下列SQL語句建立一個名為「orders」的資料庫,並建立一個名為「order_info」的資料表來儲存訂單資訊。

CREATE DATABASE orders;
USE orders;

CREATE TABLE order_info (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    order_number VARCHAR(20) NOT NULL,
    customer_name VARCHAR(50) NOT NULL,
    total_price DECIMAL(10,2) NOT NULL,
    create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
  1. 建立登入頁面

在專案的根目錄下建立一個名為「index.php」的文件,並新增以下程式碼:

<?php
session_start();

if(isset($_POST['username']) && isset($_POST['password'])){
    if($_POST['username'] === 'admin' && $_POST['password'] === 'admin'){
        $_SESSION['login'] = true;
        header('Location: order_list.php');
        exit;
    }
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>登录</title>
    <meta charset="UTF-8">
</head>
<body>
    <form method="POST" action="index.php">
        <input type="text" name="username" placeholder="用户名">
        <input type="password" name="password" placeholder="密码">
        <button type="submit">登录</button>
    </form>
</body>
</html>

此頁麵包含一個簡單的登入表單,當使用者名稱和密碼正確時,會將登入狀態儲存到session中,並跳到訂單清單頁面。

  1. 建立訂單清單頁面

在專案的根目錄下建立一個名為「order_list.php」的文件,並新增以下程式碼:

<?php
session_start();

if(!isset($_SESSION['login']) || $_SESSION['login'] !== true){
    header('Location: index.php');
    exit;
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>订单列表</title>
    <meta charset="UTF-8">
</head>
<body>
    <h1>订单列表</h1>
    <a href="create_order.php">创建新订单</a>
    <table>
        <tr>
            <th>订单号</th>
            <th>客户姓名</th>
            <th>订单金额</th>
            <th>创建时间</th>
            <th></th>
        </tr>
        <?php
        // 连接数据库
        $conn = new mysqli('localhost', 'root', 'password', 'orders');
        if ($conn->connect_error) {
            die('数据库连接失败:' . $conn->connect_error);
        }
        
        // 查询订单列表
        $sql = 'SELECT * FROM order_info ORDER BY create_time DESC';
        $result = $conn->query($sql);
        
        if ($result->num_rows > 0) {
            while($row = $result->fetch_assoc()) {
                echo '<tr>';
                echo '<td>'.$row['order_number'].'</td>';
                echo '<td>'.$row['customer_name'].'</td>';
                echo '<td>'.$row['total_price'].'</td>';
                echo '<td>'.$row['create_time'].'</td>';
                echo '<td><a href="order_details.php?id='.$row['id'].'">详情</a></td>';
                echo '</tr>';
            }
        } else {
            echo '<tr><td colspan="5">暂无订单信息</td></tr>';
        }
        
        $conn->close();
        ?>
    </table>
</body>
</html>

該頁面首先檢查登入狀態,如果使用者未登錄,則跳到登入頁面。接著,它會從資料庫中查詢訂單列表,並展示在一個HTML表格中。每行顯示訂單號碼、客戶姓名、訂單金額、建立時間以及連結用於查看訂單的詳情。

  1. 建立訂單詳情頁面

在專案的根目錄下建立名為「order_details.php」的文件,並新增以下程式碼:

<?php
session_start();

if(!isset($_SESSION['login']) || $_SESSION['login'] !== true){
    header('Location: index.php');
    exit;
}

if(!isset($_GET['id'])){
    header('Location: order_list.php');
    exit;
}

$id = $_GET['id'];

// 连接数据库
$conn = new mysqli('localhost', 'root', 'password', 'orders');
if ($conn->connect_error) {
    die('数据库连接失败:' . $conn->connect_error);
}

// 查询订单详情
$sql = 'SELECT * FROM order_info WHERE id = '.$id;
$result = $conn->query($sql);

if ($result->num_rows == 0) {
    header('Location: order_list.php');
    exit;
}

$row = $result->fetch_assoc();
?>

<!DOCTYPE html>
<html>
<head>
    <title>订单详情</title>
    <meta charset="UTF-8">
</head>
<body>
    <h1>订单详情</h1>
    <p><strong>订单号:</strong><?php echo $row['order_number'];?></p>
    <p><strong>客户姓名:</strong><?php echo $row['customer_name'];?></p>
    <p><strong>订单金额:</strong><?php echo $row['total_price'];?></p>
    <p><strong>创建时间:</strong><?php echo $row['create_time'];?></p>
    <a href="edit_order.php?id=<?php echo $row['id'];?>">编辑订单</a>
    <a href="delete_order.php?id=<?php echo $row['id'];?>" onclick="return confirm('确认删除该订单吗?')">删除订单</a>
</body>
</html>

該頁面首先檢查登入狀態和訂單id,如果使用者未登入或未傳遞訂單id,則跳到訂單清單頁面。接著,它會從資料庫中查詢訂單詳情,並展示在一個HTML頁面中。頁面上還包含編輯訂單和刪除訂單的連結。

  1. 建立建立訂單頁面

在專案的根目錄下建立一個名為「create_order.php」的文件,並新增以下程式碼:

<?php
session_start();

if(!isset($_SESSION['login']) || $_SESSION['login'] !== true){
    header('Location: index.php');
    exit;
}

if(isset($_POST['submit'])){
    // 获取订单信息
    $order_number = $_POST['order_number'];
    $customer_name = $_POST['customer_name'];
    $total_price = $_POST['total_price'];

    // 连接数据库
    $conn = new mysqli('localhost', 'root', 'password', 'orders');
    if ($conn->connect_error) {
        die('数据库连接失败:' . $conn->connect_error);
    }

    // 创建订单
    $sql = 'INSERT INTO order_info (order_number, customer_name, total_price) VALUES ("'.$order_number.'", "'.$customer_name.'", '.$total_price.')';
    $result = $conn->query($sql);

    if($result === true){
        header('Location: order_list.php');
        exit;
    } else {
        die('创建订单失败:' . $conn->error);
    }

    $conn->close();
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>创建订单</title>
    <meta charset="UTF-8">
</head>
<body>
    <h1>创建订单</h1>
    <form method="POST" action="create_order.php">
        <input type="text" name="order_number" placeholder="订单号">
        <input type="text" name="customer_name" placeholder="客户姓名">
        <input type="number" step="0.01" name="total_price" placeholder="订单金额">
        <button type="submit" name="submit">创建订单</button>
    </form>
</body>
</html>

該頁面首先檢查登入狀態,如果使用者未登錄,則跳到登入頁面。然後,它會在提交訂單表單時,將訂單資訊儲存到資料庫中。

  1. 建立編輯訂單頁面和刪除訂單功能

編輯訂單功能的實作和建立訂單類似,只需將以下程式碼新增至「edit_order.php」頁面:

<?php
session_start();

if(!isset($_SESSION['login']) || $_SESSION['login'] !== true){
    header('Location: index.php');
    exit;
}

if(!isset($_GET['id'])){
    header('Location: order_list.php');
    exit;
}

$id = $_GET['id'];

// 连接数据库
$conn = new mysqli('localhost', 'root', 'password', 'orders');
if ($conn->connect_error) {
    die('数据库连接失败:' . $conn->connect_error);
}

// 查询订单详情
$sql = 'SELECT * FROM order_info WHERE id = '.$id;
$result = $conn->query($sql);

if ($result->num_rows == 0) {
    header('Location: order_list.php');
    exit;
}

$row = $result->fetch_assoc();

if(isset($_POST['submit'])){
    // 获取订单信息
    $order_number = $_POST['order_number'];
    $customer_name = $_POST['customer_name'];
    $total_price = $_POST['total_price'];

    // 更新订单
    $sql = 'UPDATE order_info SET order_number = "'.$order_number.'", customer_name = "'.$customer_name.'", total_price = '.$total_price.' WHERE id = '.$id;
    $result = $conn->query($sql);

    if($result === true){
        header('Location: order_details.php?id='.$id);
        exit;
    } else {
        die('编辑订单失败:' . $conn->error);
    }

    $conn->close();
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>编辑订单</title>
    <meta charset="UTF-8">
</head>
<body>
    <h1>编辑订单</h1>
    <form method="POST" action="edit_order.php?id=<?php echo $row['id'];?>">
        <input type="text" name="order_number" placeholder="订单号" value="<?php echo $row['order_number'];?>">
        <input type="text" name="customer_name" placeholder="客户姓名" value="<?php echo $row['customer_name'];?>">
        <input type="number" step="0.01" name="total_price" placeholder="订单金额" value="<?php echo $row['total_price'];?>">
        <button type="submit" name="submit">保存修改</button>
    </form>
</body>
</html>

刪除訂單功能的實作類似,只需將以下程式碼新增至「delete_order.php」頁面:

<?php
session_start();

if(!isset($_SESSION['login']) || $_SESSION['login'] !== true){
    header('Location: index.php');
    exit;
}

if(!isset($_GET['id'])){
    header('Location: order_list.php');
    exit;
}

$id = $_GET['id'];

// 连接数据库
$conn = new mysqli('localhost', 'root', 'password', 'orders');
if ($conn->connect_error) {
    die('数据库连接失败:' . $conn->connect_error);
}

// 删除订单
$sql = 'DELETE FROM order_info WHERE id = '.$id;
$result = $conn->query($sql);

if($result === true){
    header('Location: order_list.php');
    exit;
} else {
    die('删除订单失败:' . $conn->error);
}

$conn->close();
?>

該頁面首先檢查登入狀態和訂單id,如果使用者未登入或未傳遞訂單id,則跳到訂單清單頁面。然後,它會從資料庫中刪除指定id的訂單,並跳到訂單清單頁面。

四、總結
本文介紹如何使用PHP實作一個簡單的線上訂單管理系統,包括實作訂單的建立、修改、查詢和刪除等功能。透過本文的範例程式碼,讀者可以學習如何利用PHP和MySQL實現一個簡單的電商應用,為商家提供更有效率的訂單管理方式。當然,這只是一個基礎的範例,在實際應用中還需要考慮更多的功能和安全性。希望本文對讀者有幫助,謝謝閱讀!

以上是如何使用PHP實現一個簡單的線上訂單管理系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn