Rumah  >  Artikel  >  pangkalan data  >  MySQL melaksanakan fungsi penjejakan penghantaran sistem pesanan

MySQL melaksanakan fungsi penjejakan penghantaran sistem pesanan

WBOY
WBOYasal
2023-11-01 15:31:531218semak imbas

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

Dalam masyarakat moden, sistem pesanan telah menjadi bahagian yang sangat diperlukan dalam industri katering massa Orang ramai bukan sahaja memerlukan kualiti dan rasa makanan, tetapi juga perlu memastikan kualiti makanan semasa proses penghantaran Ia boleh mengesan tarikh penghantaran, masa dan lokasi penghantaran makanan. Pangkalan data MySQL mempunyai kebolehskalaan dan kestabilan yang baik dan digunakan secara meluas dalam pelbagai industri Artikel ini akan memperkenalkan cara menggunakan pangkalan data MySQL untuk melaksanakan fungsi penjejakan penghantaran sistem pesanan untuk memenuhi keperluan pengguna untuk penghantaran.

1. Reka bentuk jadual data

Dalam pangkalan data MySQL, jadual data ialah unit asas untuk mengatur dan menyimpan data. Untuk fungsi pengesanan penghantaran sistem pesanan, kami boleh mereka bentuk jadual data berikut:

  1. Jadual pesanan (pesanan)
#🎜🎜 ##🎜 🎜#Nama medanint10nombor pesanan#🎜 #🎜🎜 #Nama pelanggan###🎜🎜🎜🎜🎜 🎜🎜# telefon#🎜#🎜🎜🎜🎜🎜🎜🎜 #🎜🎜 #100#🎜#🎜#🎜 0Order time#🎜🎜 #_#🎜🎜🎜 ###🎜🎜 . 🎜🎜##🎜🎜🎜##🎜🎜🎜🎜🎜🎜meja saya Nama medanJenis dataNombor makannamavarchar20🎜🎜#20#🎜 Nama Hidanganhargaperpuluhan
Jenis data Panjang Penerangan#🎜🎜🎜🎜🎜 ##🎜 🎜# id
nombor pesananpelanggan varchar 20
varchar 11 Nombor telefon pelangganvarchar
Alamat penghantaran #🎜#🎜#🎜#status 🎜🎜# int 1 Status pesanan (0: tidak dihantar, 1: dihantar)
datetime 0 Order time
10, 2 Jumlah harga tempahan
#🎜🎜🎜###🎜🎜🎜 🎜🎜#Description
id int###🎜🎜🎜🎜🎜🎜🎜🎜 #
    10, 2#🎜🎜🎜🎜🎜🎜🎜 🎜#
categoryvarcharvarchar20order_details ##🎜🎜🎜 nama 🎜#Jenis dataPanjangPenerangan ##🎜🎜🎜🎜🎜🎜🎜 ## 🎜🎜🎜#order_🎜 int10Nombor pesanandish_id# 🎜 10# 🎜🎜🎜kuantiti# 🎜🎜
20 #🎜🎜🎜🎜🎜🎜🎜 #
int 10 Nombor butiran
Nombor makan kuantiti
🎜🎜
  1. Bilangan makanan
subtotalMakanan SubjumlahGunakan bahasa PHP untuk menyambung ke pangkalan data MySQL:
// 数据库连接参数
$host = 'localhost'; // 数据库主机地址
$user = 'root'; // 数据库用户名
$password = ''; // 数据库密码
$dbname = 'order_system'; // 数据库名称

// 连接数据库
$conn = mysqli_connect($host, $user, $password, $dbname);
if (!$conn) {
    die('数据库连接失败!' . mysqli_connect_error());
}
Maklumat pesanan pertanyaan#🎜🎜 #Kunci untuk merealisasikan fungsi pengesanan penghantaran sistem pesanan adalah untuk menanyakan maklumat pesanan dan memaparkan maklumat status penghantaran pada halaman. Kod berikut menanyakan semua maklumat pesanan yang dihantar: Apabila status penghantaran pesanan berubah, ia perlu dikemas kini dalam masa Status pesanan dalam pangkalan data. Kod berikut digunakan untuk mengemas kini status pesanan kepada "dihantar":
// 更新订单状态
$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. Pelaksanaan halaman # 🎜🎜 #
<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>
Kemas kini status pesanan
// 订单状态更新
$(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('订单状态更新失败!');
            }
        }
    });
});
decimal #🎜#🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜# 2.
// 查询已配送的订单信息
$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);
Kemas kini status pesanan
Halaman senarai pesananDalam halaman pengurusan bahagian belakang sistem pesanan, kami boleh memaparkan semua maklumat pesanan yang dihantar dan memasukkan butang operasi untuk mengubah suai status pesanan. Kod berikut menunjukkan kod HTML untuk senarai pesanan yang dihantar:
Apabila pengendali mengklik "Dihantar" butang , anda perlu menghantar permintaan AJAX kepada pelayan untuk mengemas kini status pesanan, dan memaparkan perubahan status pesanan secara dinamik pada halaman. Kod berikut menunjukkan kod JavaScript permintaan AJAX: 4. Ringkasan Proses menggunakan pangkalan data MySQL untuk melaksanakan fungsi penjejakan penghantaran sistem pesanan melibatkan reka bentuk jadual pangkalan data, dan Pertanyaan dan kemas kini maklumat pesanan. Pada masa yang sama, kami juga perlu memaparkan maklumat pesanan pada halaman dan melaksanakan kemas kini status pesanan dinamik. Perkara di atas menyediakan idea pelaksanaan asas, dan pembaca boleh mengembangkan dan mengubah suainya dengan sewajarnya mengikut keperluan sebenar dan logik perniagaan.

Atas ialah kandungan terperinci MySQL melaksanakan fungsi penjejakan penghantaran sistem pesanan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn