ホームページ  >  記事  >  データベース  >  MySQL は注文システムの配送追跡機能を実装します

MySQL は注文システムの配送追跡機能を実装します

WBOY
WBOYオリジナル
2023-11-01 15:31:531218ブラウズ

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

現代社会において、注文システムは大衆向けケータリング業界にとって不可欠な要素となっており、人々は料理の品質と味を求めるだけでなく、配送プロセス中の簡単な追跡も求めています。 . 食事の配達日時、配達場所の情報。 MySQLデータベースは拡張性と安定性に優れ、様々な業界で広く利用されており、本稿では、MySQLデータベースを利用して、ユーザーの配送ニーズに応える受発注システムの配送追跡機能を実装する方法を紹介します。

1. データ テーブルの設計

MySQL データベースでは、データ テーブルはデータを編成および保存するための基本単位です。注文システムの配送追跡機能では、次のデータ テーブルを設計できます:

  1. 注文テーブル (注文)
##idint10注文番号customervarchar20顧客名phonevarchar11お客様の電話番号住所varchar100配送先住所ステータスint1注文ステータス (0: 未配送、1: 配送済み) create_timedatetime0 次のシングルtimedelivery_timedatetime0delivery timetotal_price 10 進数
フィールド名 データ型 長さ 説明
#10, 2 合計注文金額
料理
フィールド名id名前価格category
データ型 長さ 説明
int 10 食事番号
varchar 20 食事名
10進数 10, 2 食事単価
varchar 20 食事カテゴリ
注文詳細テーブル (order_details)
フィールド名##データ型# #長さ#idint10詳細番号 order_idint10注文番号dish_idint10食事番号数量int3食事の量小計10進数10, 2食事の小計#2 . データベース操作PHP 言語を使用して MySQL データベースに接続します:
##説明
データベース接続
// 数据库连接参数
$host = 'localhost'; // 数据库主机地址
$user = 'root'; // 数据库用户名
$password = ''; // 数据库密码
$dbname = 'order_system'; // 数据库名称

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

クエリ順序情報
  1. 注文システムの配送追跡機能を実現する鍵は、注文情報を照会し、配送状況情報をページに表示することです。次のコードは、配送されたすべての注文情報をクエリします。
// 查询已配送的订单信息
$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. 注文の配送ステータスが変更された場合、データベース内の注文のステータスを更新する必要があります。タイムリーに更新されること。次のコードは、注文のステータスを「配達済み」に更新するために使用されます:
// 更新订单状态
$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';
}

3. ページの実装

  1. 注文リスト ページ

When注文 システムのバックグラウンド管理ページでは、配送されたすべての注文情報を表示し、注文ステータスを変更するための操作ボタンを追加できます。次のコードは、配信された注文リストの 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>

Order status update
  1. オペレーターが「配信済み」ボタンをクリックすると、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('订单状态更新失败!');
            }
        }
    });
});

4. 概要

    MySQL データベースを使用して注文システムの配送追跡機能を実装するプロセスには、データベース テーブルと注文情報のコレクション、クエリと更新。同時に、ページに注文情報を表示し、動的な注文ステータスの更新を実装する必要もあります。上記は基本的な実装アイデアを示しており、読者は実際のニーズやビジネス ロジックに応じて適切に拡張および変更できます。

以上がMySQL は注文システムの配送追跡機能を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。