Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pergi pembangunan bahasa sistem memasak dari pintu ke pintu: Bagaimana untuk melaksanakan fungsi carian hidangan?

Pergi pembangunan bahasa sistem memasak dari pintu ke pintu: Bagaimana untuk melaksanakan fungsi carian hidangan?

王林
王林asal
2023-11-01 08:32:21663semak imbas

Pergi pembangunan bahasa sistem memasak dari pintu ke pintu: Bagaimana untuk melaksanakan fungsi carian hidangan?

Go pembangunan bahasa sistem memasak dari pintu ke pintu: Bagaimana untuk melaksanakan fungsi carian hidangan?

Pengenalan:
Dengan populariti perkhidmatan bawa pulang dan dari pintu ke pintu, semakin ramai orang memilih untuk menikmati makanan yang lazat di rumah. Sebagai tindak balas kepada permintaan ini, sistem memasak dari pintu ke pintu wujud. Apabila membangunkan sistem sedemikian, pelaksanaan fungsi carian hidangan adalah bahagian yang sangat penting. Artikel ini akan menggunakan bahasa Go sebagai contoh untuk memperkenalkan secara terperinci cara melaksanakan fungsi carian hidangan dan memberikan contoh kod yang sepadan.

1. Analisis keperluan:
Sebelum melaksanakan fungsi carian hidangan, kami perlu menjelaskan terlebih dahulu keperluan dan fungsi sistem. Dalam sistem memasak dari pintu ke pintu, pengguna perlu mencari hidangan yang sesuai dengan mereka berdasarkan nama hidangan, ramuan, rasa dan keadaan lain. Oleh itu, fungsi carian hidangan kami perlu memenuhi keperluan berikut:

  1. Menyokong carian mengikut nama hidangan: pengguna boleh mencari hidangan yang sepadan dengan cepat berdasarkan nama hidangan yang dimasukkan.
  2. Menyokong carian mengikut ramuan: pengguna boleh memasukkan bahan tertentu, dan sistem akan mengembalikan hidangan yang mengandungi bahan tersebut.
  3. Menyokong carian mengikut rasa: pengguna boleh memilih rasa kegemaran mereka, dan sistem akan mengembalikan hidangan yang sepadan.

2. Reka bentuk pangkalan data:
Untuk melaksanakan fungsi carian hidangan, kita perlu mereka bentuk struktur pangkalan data yang sesuai. Dalam contoh ini, kami menggunakan pangkalan data MySQL dan mencipta jadual bernama "hidangan" untuk menyimpan maklumat hidangan. Struktur jadual adalah seperti berikut:

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. Pelaksanaan kod:
Setelah memahami keperluan dan struktur pangkalan data, kita boleh mula melaksanakan fungsi carian hidangan. Berikut ialah kod contoh bahasa Go yang mudah untuk menunjukkan cara melaksanakan fungsi carian hidangan:

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
}

Dalam kod di atas, kami mula-mula menggunakan fungsi database/sqlgithub.com/go-sql-driver/mysql包来连接MySQL数据库。然后,我们实现了一个searchDish untuk melakukan carian hidangan. Dalam fungsi ini, kami membina pernyataan pertanyaan SQL dinamik berdasarkan input pengguna dan melaksanakan operasi pertanyaan. Akhir sekali, kami mencetak maklumat hidangan yang diperolehi dengan merentasi hasil pertanyaan.

4. Ringkasan:
Melalui contoh dan arahan kod di atas, kami memahami cara menggunakan bahasa Go untuk melaksanakan fungsi carian hidangan. Melalui analisis permintaan yang munasabah dan reka bentuk pangkalan data, digabungkan dengan pelaksanaan kod, kami boleh mencipta sistem memasak dari pintu ke pintu yang berfungsi sepenuhnya. Saya harap artikel ini dapat membantu semua orang dalam melaksanakan fungsi carian hidangan dalam pembangunan bahasa Go.

Atas ialah kandungan terperinci Pergi pembangunan bahasa sistem memasak dari pintu ke pintu: Bagaimana untuk melaksanakan fungsi carian hidangan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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