Maison  >  Article  >  base de données  >  MySQL implémente la fonction de suivi des livraisons du système de commande

MySQL implémente la fonction de suivi des livraisons du système de commande

WBOY
WBOYoriginal
2023-11-01 15:31:531178parcourir

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

Dans la société moderne, le système de commande est devenu un élément indispensable du secteur de la restauration collective. Les gens exigent non seulement la qualité et le goût des aliments, mais doivent également pouvoir suivre facilement la date, l'heure et la date de livraison. la nourriture pendant le processus de livraison. Lieu de livraison et autres informations. La base de données MySQL a une bonne évolutivité et stabilité et est largement utilisée dans diverses industries. Cet article explique comment utiliser la base de données MySQL pour mettre en œuvre la fonction de suivi des livraisons du système de commande afin de répondre aux besoins de livraison des utilisateurs.

1. Conception de table de données

Dans la base de données MySQL, la table de données est l'unité de base pour organiser et stocker les données. Pour la fonction de suivi des livraisons du système de commande, nous pouvons concevoir le tableau de données suivant :

  1. Tableau des commandes (commandes)
Nom du champ Type de données Longueur Description
id int 10 numéro de commande
client varchar 20 nom du client
téléphone varchar 11 numéro de téléphone client
adresse varchar 100 Adresse de livraison
status int 1 Statut de la commande (0 : non livré, 1 : livré)
create_time datetime 0 Délai de commande
delivery_time datetime 0 délai de livraison
prix_total décimal 10, 2 prix total de la commande
  1. Tableaux (d ishes)
nom des champs type de données longueur description
id int 10 numéro d'article
nom varchar 20 Moi al nom
prix décimal 10, 2 Prix unitaire du repas
catégorie varchar 20 Catégorie de repas
  1. Tableau des détails de la commande (order_details)
Nom du champ Type de données Longueur Description
id int 10 Numéro de détail
order_id int 10 Numéro de commande
dish_id int 10 Numéro de repas
quantité int 3 Quantité des repas
sous-total décimal 10, 2 Sous-total des repas

2. Fonctionnement de la base de données

  1. Connexion à la base de données

Utilisation Langage PHP pour se connecter à la base de données MySQL :

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

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

La clé pour implémenter la fonction de suivi des livraisons du système de commande est d'interroger les informations de commande et d'afficher les informations sur l'état de livraison sur la page. Le code suivant interroge toutes les informations de la commande livrée :

// 查询已配送的订单信息
$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. Mettre à jour le statut de la commande

Lorsque le statut de livraison d'une commande change, le statut de la commande dans la base de données doit être mis à jour en temps opportun. Le code suivant est utilisé pour mettre à jour le statut de la commande à « livrée » :

// 更新订单状态
$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. Implémentation de la page

  1. Page de liste des commandes

Dans la page de gestion en arrière-plan du système de commande, nous pouvons afficher toutes les informations de commande qui a été livré et contient des boutons d'action pour modifier le statut de la commande. Le code suivant affiche le code HTML de la liste des commandes livrées :

<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>
  1. Mise à jour du statut de la commande

Lorsque l'opérateur clique sur le bouton "Livré", une requête AJAX doit être envoyée au serveur pour mettre à jour le statut de la commande et dynamiquement sur la page Afficher les changements dans l'état de la commande. Le code suivant illustre le code JavaScript de la requête AJAX :

// 订单状态更新
$(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('订单状态更新失败!');
            }
        }
    });
});

IV Résumé

Le processus d'utilisation de la base de données MySQL pour implémenter la fonction de suivi des livraisons du système de commande implique la conception de la table de la base de données, ainsi que la requête. et mise à jour des informations de commande. Dans le même temps, nous devons également afficher les informations de commande sur la page et mettre en œuvre des mises à jour dynamiques du statut des commandes. Ce qui précède fournit une idée de mise en œuvre de base, et les lecteurs peuvent l'étendre et la modifier de manière appropriée en fonction des besoins réels et de la logique métier.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn