php下msql搜索查询问题。

目前有个项目,搜索的功能。

在一个table里。
姓名 学号 手机号 项目A 项目B

除了姓名以外,其他都是精确查询。
姓名 :模糊查询
学号 手机号 项目A 项目A :精确查询

只输入一个关键字,其他不输入也能查询。

请问这个sql 怎么写啊?

阅读 2.2k
4 个回答

简单的来说 可以拼接字符
比如 isset(电话了) 那就在 sql里面加上 and tel = XXXX
如果有 isset(项目名)了 就在后面 加上 and project_name = XXXX
if(isset(电话了)){
sql.=" and tel =XXX"
}
if(isset(project_name)){
sql.= " and project_name = XXXX"

}

查询条件可以这么写

if(trim($where['name'])){
            $where['name']=['like',"%".trim($where['name'])."%"];
        }else{
            unset($where['name']);
        }
        if(trim($where['number'])){
            $where['number']=['like',"%".trim($where['number'])."%"];
        }else{
            unset($where['number']);
        }
        if(trim($where['tel'])){
            $where['status']=trim($where['status']);
        }else{
            unset($where['status']);
        }
新手上路,请多包涵

图片描述

$search = trim($where['name']);
if($search){

if(is_numberic($search)){
   $where['_string'] = ' (tel="%.$search.%") OR ( titleA = "%.$search.%") OR ( titleB ="%.$search.%") OR ( number="%.$search.%")';
}else{
    $where['name']=['like',"%".$search."%"];
}

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题