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