Home  >  Article  >  Backend Development  >  How to use PHP to develop a simple online ordering function

How to use PHP to develop a simple online ordering function

PHPz
PHPzOriginal
2023-09-21 11:21:18884browse

How to use PHP to develop a simple online ordering function

How to use PHP to develop a simple online ordering function

With the popularity of the Internet, more and more restaurants have begun to provide online ordering services. With the power and flexibility of the PHP language, it is very practical and interesting to develop a simple online ordering function. This article will introduce how to use PHP to develop a simple online ordering system and provide specific code examples.

1. Database design

Before we start writing code, we need to design a database to store menu information and customer orders. We can use the MySQL database and create two tables to store this information. First, we create a menu table (menu), containing information such as dish names, prices, and descriptions. Secondly, create an order table (orders), including order number, dish name, quantity and total price and other information.

The structure of the menu table is as follows:

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
);

The structure of the orders table is as follows:

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)
);

2. Create a web interface

Next, we create a simple A web interface to display menus and process customer orders. First, create an index.php file and add the following code in the file:

<!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>

In the above code, we first connect to the database and query the menu data. Then, display the menu data on the web page through a loop and provide a join order button for each menu item. After clicking the button, it will jump to the order.php file for processing.

3. Processing Orders

In the order.php file, we process the addition of customer orders and calculate the total price. Add the following code in the file:

<?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();
?>

In the above code, we first receive the menu ID (menu_id) and quantity (quantity) parameters from the index.php interface. Then, connect to the database and query the prices of the selected menu. Next, we calculate the total order price and generate the order number, and insert the order data into the orders table.

4. Test run

Open the index.php interface in the browser, you can see the menu list and click the Add Order button. After clicking the button, it will jump to the order.php file for processing, and display a message indicating whether the order was added successfully or failed.

Summary

Through the above steps, we successfully developed a simple online ordering function using PHP. Using the powerful functions of PHP and database, we can easily implement the ordering function, and can carry out secondary development and expansion according to needs. When writing such functions, we should pay attention to protecting the security of database connections and processing user input data to ensure the stability and security of the system.

The above is the detailed content of How to use PHP to develop a simple online ordering function. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn