Home  >  Article  >  Backend Development  >  Go language development of door-to-door cooking system: How to implement the dish search function?

Go language development of door-to-door cooking system: How to implement the dish search function?

王林
王林Original
2023-11-01 08:32:21663browse

Go language development of door-to-door cooking system: How to implement the dish search function?

Go language development of door-to-door cooking system: How to implement the dish search function?

Introduction:
With the popularity of takeout and door-to-door services, more and more people choose to enjoy delicious food at home. In response to this demand, the door-to-door cooking system came into being. When developing such a system, the implementation of the dish search function is a very important part. This article will use Go language as an example to introduce in detail how to implement a dish search function and provide corresponding code examples.

1. Requirements analysis:
Before implementing the dish search function, we first need to clarify the requirements and functions of the system. In the door-to-door cooking system, users need to search for dishes that suit them based on dish name, ingredients, taste and other conditions. Therefore, our dish search function needs to meet the following requirements:

  1. Supports search by dish name: users can quickly find the corresponding dish based on the entered dish name.
  2. Supports search by ingredients: users can enter a certain ingredient, and the system will return dishes containing that ingredient.
  3. Supports search by taste: users can choose their favorite taste, and the system will return the corresponding dishes.

2. Database design:
In order to realize the dish search function, we need to design a suitable database structure. In this example, we use the MySQL database and create a table named "dishes" to store dish information. The structure of the table is as follows:

CREATE TABLE dishes (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    ingredients VARCHAR(200) NOT NULL,
    taste VARCHAR(50) NOT NULL
);

3. Code implementation:
After understanding the requirements and database structure, we can start to implement the dish search function. The following is a simple Go language sample code to demonstrate how to implement the dish search function:

package main

import (
    "database/sql"
    "fmt"
    "log"
    "strings"

    _ "github.com/go-sql-driver/mysql"
)

type Dish struct {
    ID          int    `json:"id"`
    Name        string `json:"name"`
    Ingredients string `json:"ingredients"`
    Taste       string `json:"taste"`
}

func main() {
    // 连接数据库
    db, err := sql.Open("mysql", "用户名:密码@tcp(localhost:3306)/数据库名")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    // 搜索菜品
    results, err := searchDish(db, "宫保鸡丁", "", "")
    if err != nil {
        log.Fatal(err)
    }

    // 打印搜索结果
    for _, dish := range results {
        fmt.Printf("ID: %d, 菜名: %s, 食材: %s, 口味: %s
", dish.ID, dish.Name, dish.Ingredients, dish.Taste)
    }
}

func searchDish(db *sql.DB, name, ingredients, taste string) ([]Dish, error) {
    query := "SELECT * FROM dishes WHERE 1=1"

    // 构建查询条件
    if name != "" {
        query += fmt.Sprintf(" AND name LIKE '%s'", "%"+name+"%")
    }
    if ingredients != "" {
        query += fmt.Sprintf(" AND ingredients LIKE '%s'", "%"+ingredients+"%")
    }
    if taste != "" {
        query += fmt.Sprintf(" AND taste = '%s'", taste)
    }

    // 执行查询
    rows, err := db.Query(query)
    if err != nil {
        return nil, err
    }
    defer rows.Close()

    // 解析查询结果
    var results []Dish
    for rows.Next() {
        var dish Dish
        err := rows.Scan(&dish.ID, &dish.Name, &dish.Ingredients, &dish.Taste)
        if err != nil {
            return nil, err
        }
        results = append(results, dish)
    }

    return results, nil
}

In the above code, we first use database/sql and github.com /go-sql-driver/mysql package to connect to the MySQL database. Then, we implemented a searchDish function to perform dish search. In this function, we construct a dynamic SQL query statement based on user input and execute the query operation. Finally, we print out the obtained dish information by traversing the query results.

4. Summary:
Through the above code examples and instructions, we understand how to use Go language to implement the dish search function. Through reasonable demand analysis and database design, combined with code implementation, we can create a fully functional door-to-door cooking system. I hope this article can be helpful to everyone in implementing the dish search function in Go language development.

The above is the detailed content of Go language development of door-to-door cooking system: How to implement the dish search 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