gpt4 book ai didi

php - 无法在ajax和php中使用多个参数执行搜索

转载 作者:行者123 更新时间:2023-11-29 17:49:40 25 4
gpt4 key购买 nike

我有2个表teacher和teacher_skill,其结构如下

老师

id  name  age  rate     skill     loc   exp   avail
1 A 30 2 a,b,c ABC 4 Immediate
2 B 25 4 a,d DEF 6 Notice
3 C 35 2 d ABC 4 Immediate
4 D 28 1 a,f,b DEF 6 Notice

使用ajax,我将值提交到后端,我在后端获取这样的数据

$data = array(
'min' => $this->input->post('min'),
'max'=>$this->input->post('max'),
'loc'=>$this->input->post('loc'),
'skill'=>$this->input->post('skill'),
'exp' => $this->input->post('exp'),
'avail'=>$this->input->post('avail')
);

在前端,用户可以输入所有值或值的任意组合,甚至这些值中的任何一个。

min, max,loc,exp, avail will have a single value from user

skill will have multiple values separated with a comma

我有一个类似这样的基本查询

  $query = mysql_query(" SELECT * FROM teacher WHERE  %$min% < rate < %$max%  AND skill LIKE '%$skill%' AND  loc LIKE '%$loc%' AND  exp LIKE '%$exp%' AND  avail LIKE '%$avail%' ") ;

这是一个基本搜索,其中所有字段均已填写,但我无法弄清楚如何将此查询用于任何多个组合。用户可以输入任何字段,然后根据该组合我需要进行搜索

谁能告诉我哪个查询最适合这种情况

最佳答案

您应该根据您拥有的过滤器动态构建查询

$whereClause = array();
if (strlen($min) > 0) {
$whereClause[] = "min LIKE '%$min%'";
}
if (strlen($max) > 0) {
$whereClause[] = "max LIKE '%$max%'";
}
...
$sql = 'SELECT * FROM teacher WHERE ' . join(' AND ', $whereClause);
$query = mysql_query($sql);

关于php - 无法在ajax和php中使用多个参数执行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49495018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com