求助使用gin配合mysql实现一种查询场景
场景:前端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
数据库
有三张表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
}
}
推荐文章: