Cara menggunakan PHP untuk membangunkan fungsi pesanan dalam talian yang mudah

PHPz
Lepaskan: 2023-09-21 11:22:01
asal
911 orang telah melayarinya

Cara menggunakan PHP untuk membangunkan fungsi pesanan dalam talian yang mudah

Cara menggunakan PHP untuk membangunkan fungsi pesanan dalam talian yang mudah

Dengan populariti Internet, semakin banyak restoran telah mula menyediakan perkhidmatan pesanan dalam talian. Dengan kuasa dan fleksibiliti bahasa PHP, adalah sangat praktikal dan menarik untuk membangunkan fungsi pesanan dalam talian yang mudah. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan sistem pesanan dalam talian yang mudah dan menyediakan contoh kod khusus.

1. Reka bentuk pangkalan data

Sebelum kita mula menulis kod, kita perlu mereka pangkalan data untuk menyimpan maklumat menu dan pesanan pelanggan. Kita boleh menggunakan pangkalan data MySQL dan mencipta dua jadual untuk menyimpan maklumat ini. Mula-mula, kami mencipta jadual menu (menu), yang mengandungi maklumat seperti nama hidangan, harga dan penerangan. Kedua, buat jadual pesanan (pesanan), termasuk nombor pesanan, nama hidangan, kuantiti dan jumlah harga dan maklumat lain. Struktur jadual

menu adalah seperti berikut:

CREATE TABLE menu (
  id INT(11) AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  price DECIMAL(10,2) NOT NULL,
  description TEXT,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Salin selepas log masuk

Struktur jadual pesanan adalah seperti berikut:

CREATE TABLE orders (
  id INT(11) AUTO_INCREMENT PRIMARY KEY,
  order_number VARCHAR(50) NOT NULL,
  menu_id INT(11) NOT NULL,
  quantity INT(11) NOT NULL,
  total_price DECIMAL(10,2) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (menu_id) REFERENCES menu(id)
);
Salin selepas log masuk

2. Buat antara muka web

Seterusnya, kami mencipta antara muka web yang mudah untuk memaparkan menu dan proses pesanan pelanggan. Mula-mula, buat fail index.php dan tambah kod berikut dalam fail:

<!DOCTYPE html>
<html>
<head>
    <title>在线点餐</title>
</head>
<body>
    <h1>菜单</h1>
    
    <?php
        // 连接数据库
        $conn = new mysqli("localhost", "root", "", "restaurant");
        
        // 检查数据库连接是否成功
        if ($conn->connect_error) {
            die("数据库连接失败: " . $conn->connect_error);
        }
        
        // 查询菜单
        $sql = "SELECT * FROM menu";
        $result = $conn->query($sql);
        
        // 显示菜单
        if ($result->num_rows > 0) {
            while ($row = $result->fetch_assoc()) {
                echo "<p>" . $row["name"] . ": $" . $row["price"] . "</p>";
                echo "<p>" . $row["description"] . "</p>";
                echo "<form action='order.php' method='post'>";
                echo "<input type='hidden' name='menu_id' value='" . $row["id"] . "'>";
                echo "<input type='number' name='quantity' min='1' value='1'>";
                echo "<input type='submit' value='加入订单'>";
                echo "</form>";
                echo "<hr>";
            }
        } else {
            echo "暂无菜单";
        }
        
        // 关闭数据库连接
        $conn->close();
    ?>
    
</body>
</html>
Salin selepas log masuk

Dalam kod di atas, kami mula-mula menyambung ke pangkalan data dan menanyakan data menu. Kemudian, paparkan data menu pada halaman web melalui gelung dan berikan setiap item menu butang tambah pesanan. Selepas mengklik butang, ia akan melompat ke fail order.php untuk diproses.

3. Memproses pesanan

Dalam fail order.php, kami memproses penambahan tempahan pelanggan dan mengira jumlah harga. Tambahkan kod berikut dalam fail:

<?php
    // 接收菜单ID和数量
    $menu_id = $_POST["menu_id"];
    $quantity = $_POST["quantity"];
    
    // 连接数据库
    $conn = new mysqli("localhost", "root", "", "restaurant");
    
    // 检查数据库连接是否成功
    if ($conn->connect_error) {
        die("数据库连接失败: " . $conn->connect_error);
    }
    
    // 查询菜单
    $sql = "SELECT * FROM menu WHERE id = $menu_id";
    $result = $conn->query($sql);
    
    // 添加订单
    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $order_total = $row["price"] * $quantity;
            
            // 生成订单号
            $order_number = "OD" . time();
            
            // 插入订单数据
            $sql = "INSERT INTO orders (order_number, menu_id, quantity, total_price) VALUES ('$order_number', $menu_id, $quantity, $order_total)";
            
            if ($conn->query($sql) === TRUE) {
                echo "订单添加成功";
            } else {
                echo "订单添加失败: " . $conn->error;
            }
        }
    } else {
        echo "菜单不存在";
    }
    
    // 关闭数据库连接
    $conn->close();
?>
Salin selepas log masuk

Dalam kod di atas, kami mula-mula menerima ID menu (menu_id) dan parameter kuantiti (kuantiti) daripada antara muka index.php. Kemudian, sambung ke pangkalan data dan tanya harga menu yang dipilih. Seterusnya, kami mengira jumlah harga pesanan dan menjana nombor pesanan, dan memasukkan data pesanan ke dalam jadual pesanan.

4. Test run

Buka antara muka index.php dalam pelayar, anda boleh melihat senarai menu dan klik butang Tambah Pesanan. Selepas mengklik butang, ia akan melompat ke fail order.php untuk diproses, dan memaparkan mesej yang menunjukkan sama ada pesanan itu berjaya ditambahkan atau gagal.

Ringkasan

Melalui langkah di atas, kami berjaya membangunkan fungsi pesanan dalam talian yang mudah menggunakan PHP. Menggunakan fungsi PHP dan pangkalan data yang berkuasa, kami boleh melaksanakan fungsi pesanan dengan mudah, dan boleh menjalankan pembangunan dan pengembangan sekunder mengikut keperluan. Apabila menulis fungsi sedemikian, kita harus memberi perhatian untuk melindungi keselamatan sambungan pangkalan data dan memproses data input pengguna untuk memastikan kestabilan dan keselamatan sistem.

Atas ialah kandungan terperinci Cara menggunakan PHP untuk membangunkan fungsi pesanan dalam talian yang mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!