Maison >base de données >tutoriel mysql >MySQL implémente la fonction de suivi des livraisons du système de commande
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 :
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 |
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 |
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
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()); }
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);
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
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>
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!