首頁  >  文章  >  資料庫  >  MySQL 實現點餐系統的配送追蹤功能

MySQL 實現點餐系統的配送追蹤功能

WBOY
WBOY原創
2023-11-01 15:31:531178瀏覽

MySQL 实现点餐系统的配送跟踪功能

在現代社會中,點餐系統已成為大眾餐飲業中不可或缺的組成部分,人們不僅要求食品的品質口感,也需要在配送過程中能夠方便追踪餐品的配送日期、時間、送達地點等資訊。 MySQL 資料庫具有良好的可擴展性和穩定性,廣泛應用於各行各業,本文將介紹如何利用 MySQL 資料庫實現點餐系統的配送追蹤功能,以滿足使用者對配送的需求。

一、資料表設計

在 MySQL 資料庫中,資料表是組織和儲存資料的基本單位。針對點餐系統配送追蹤功能,我們可以設計以下資料表:

  1. 訂單表(orders)
##int#10訂單編號customer#varchar20客戶名稱phonevarchar11#客戶手機號碼addressvarchar100配送位址statusint1訂單狀態(0:未送達,1:已送達)create_timedatetime0下單一時間delivery_timedatetime0配送時間##total_price
欄位名稱 資料型別 長度 說明
#id
decimal 10, 2 訂單總價
餐點(dishes)
欄位名稱intvarchar#decimalvarchar
資料型別 說明
#id
10 餐商品編號 name
20 餐點名 #price
10, 2 餐單價 category
20
  1. 餐點類別
資料類型長度#intint##dish_idint10餐點編號#quantityint3餐點數量subtotaldecimal10, 2
訂單詳情表(order_details) #欄位名稱
說明 id
10 #詳情編號 order_id
10 訂單編號

餐品小計

#二、資料庫操作

    資料庫連線
#使用PHP 語言連接到MySQL 資料庫:

// 数据库连接参数
$host = 'localhost'; // 数据库主机地址
$user = 'root'; // 数据库用户名
$password = ''; // 数据库密码
$dbname = 'order_system'; // 数据库名称

// 连接数据库
$conn = mysqli_connect($host, $user, $password, $dbname);
if (!$conn) {
    die('数据库连接失败!' . mysqli_connect_error());
}

    #查詢訂單資訊
實現點餐系統配送追蹤功能的關鍵是查詢訂單信息,並在頁面上展示配送狀態資訊。以下程式碼查詢所有已配送的訂單資訊:

// 查询已配送的订单信息
$sql = "SELECT o.*, SUM(d.price * od.quantity) AS total_price FROM orders o 
        LEFT JOIN order_details od ON o.id = od.order_id 
        LEFT JOIN dishes d ON od.dish_id = d.id 
        WHERE o.status = '1' 
        GROUP BY o.id 
        ORDER BY o.delivery_time DESC";
$result = mysqli_query($conn, $sql);

更新訂單狀態

  1. 當訂單的配送狀態變更時,需要及時更新資料庫中訂單的狀態。以下程式碼用於更新訂單的狀態為「已送達」:
  2. // 更新订单状态
    $order_id = $_POST['order_id']; // 获取订单编号
    $sql = "UPDATE orders SET status = '1' WHERE id = $order_id";
    if (mysqli_query($conn, $sql)) {
        // 更新成功
        echo '1';
    } else {
        // 更新失败
        echo '0';
    }
三、頁面實作

    訂單清單頁面
  1. ##在點餐系統的後台管理頁面中,我們可以展示所有已經配送的訂單信息,並包含操作按鈕以進行訂單狀態的修改。以下程式碼顯示已配送訂單清單的HTML 代碼:
<table>
    <thead>
        <tr>
            <th>订单编号</th>
            <th>客户姓名</th>
            <th>客户手机号</th>
            <th>配送地址</th>
            <th>订单总价</th>
            <th>下单时间</th>
            <th>配送日期</th>
            <th>配送时间</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody>
        <?php
        while ($row = mysqli_fetch_assoc($result)) {
            echo '<tr>';
            echo '<td>' . $row['id'] . '</td>';
            echo '<td>' . $row['customer'] . '</td>';
            echo '<td>' . $row['phone'] . '</td>';
            echo '<td>' . $row['address'] . '</td>';
            echo '<td>' . $row['total_price'] . '</td>';
            echo '<td>' . $row['create_time'] . '</td>';
            echo '<td>' . date('Y-m-d', strtotime($row['delivery_time'])) . '</td>';
            echo '<td>' . date('H:i', strtotime($row['delivery_time'])) . '</td>';
            echo '<td><button class="delivered-btn" data-order-id="' . $row['id'] . '">已送达</button></td>';
            echo '</tr>';
        }
        ?>
    </tbody>
</table>

訂單狀態更新

當操作員點選「已送達」按鈕時,需要傳送AJAX請求以更新訂單狀態,並在頁面上動態地顯示訂單狀態的變化。以下程式碼示範AJAX 請求的JavaScript 程式碼:

// 订单状态更新
$(document).on('click', '.delivered-btn', function () {
    var order_id = $(this).attr('data-order-id'); // 获取订单编号
    $.ajax({
        url: 'update_order_status.php',
        method: 'POST',
        data: {order_id: order_id},
        success: function (res) {
            if (res === '1') {
                // 更新成功
                alert('订单状态已更新!');
                location.reload(); // 刷新页面
            } else {
                // 更新失败
                alert('订单状态更新失败!');
            }
        }
    });
});
###四、總結#######利用MySQL 資料庫實現點餐系統的配送追蹤功能的過程涉及到資料庫表的設計,以及對訂單資訊的查詢和更新。同時,我們還需要在頁面上展示訂單資訊並實現動態的訂單狀態更新。以上提供了一個基本的實現思路,各位讀者可以根據實際需求和業務邏輯適當進行拓展和修改。 ###

以上是MySQL 實現點餐系統的配送追蹤功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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