求助使用gin配合mysql实现一种查询场景

infoBrainSys · 2023-05-19 09:33:20 · 3414 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2023-05-19 09:33:20 的主题,其中的信息可能已经有所发展或是发生改变。

场景:前端POST传入一个字段或者多个字段,gin拿到后如何处理区分传入的是什么?然后去数据库查询,如果查找了就返回这个用户的所有数据,(能被查询的字段只有:name,order_id,phone)期望的结果如:

// 情况1
POST—>张三
Rturn—>name:张三,gender:男,age:32,order_id:123456,phone:13888888888
// 场景2
POST—>13888888888
Return—>name:张三,gender:男,age:32,order_id:123456,phone:13888888888
// 场景3
POST—>13888888888,654321
Return—>
name:张三,gender:男,age:32,order_id:123456,phone:13888888888
name:李四,gender:女,age:18,order_id:654321,phone:15555555555
// 场景4
POST—> N...
Return—> M...

数据库

有三张表user,order,info

user 主表

id name gender age
1 张三 32
2 李四 18

order 分表关联 user.id

id user_id order_id
1 1 123456
2 2 654321

info 分表关联 user.id

id user_id phone
1 1 13888888888
2 2 15555555555

前端

<div class="search-box">
    <form method="post" action="/">
        <input type="text" class="search-txt" name="column" placeholder="查询" />
        <button type="submit" class="search-btn fa fa-search" aria-hidden="true"></button>
    </form>
</div>

后端

func main() {
    // 初始化数据库连接
    config.NewDB()

    // 创建 gin 引擎实例
    router := gin.Default()
    router.LoadHTMLFiles("./static/templates/index.html")
    router.Static("/static", "./static/templates/css")
    router.GET("/", func(c *gin.Context) {
        c.HTML(http.StatusOK, "index.html", gin.H{})
    })
    router.POST("/", func(c *gin.Context) {
        column := c.PostForm("column")
        fmt.Println(column)
        c.HTML(http.StatusOK, "index.html", gin.H{
            "result": column,
        })
    })
    // 启动服务
    err := router.Run()
    if err != nil {
        return
    }
}

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3414 次点击  
加入收藏 微博
3 回复  |  直到 2023-05-31 14:55:41
GGXXLL
GGXXLL · #1 · 2年之前
fengjian1993
fengjian1993 · #2 · 2年之前

没看懂想表达什么 定义一个POST requestBody的json结构不就行了?

xwszt
xwszt · #3 · 2年之前
fengjian1993fengjian1993 #2 回复

没看懂想表达什么 定义一个POST requestBody的json结构不就行了?

应该是全文搜索

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传