本文实例讲述了php+mysql+ajax实现单表多字段多关键词查询的方法。分享给大家供大家参考,具体如下:
单表多字段查询在一些稍微复杂一点的查询中十分有用。这里主要利用MySQL数据库中的concat函数实现单表多字段多关键词查询。并且显示查询结果的表格可根据所选数据表动态生成。
html代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="/UploadFiles/2021-04-02/jquery-1.9.1.min.js">queryInIndex.php:
<"../phpFiles/connMysql.php");//包含连接数据库的代码 $queryType=$_POST['queryType'];//目标数据表 $queryKeywords=$_POST['queryKeywords']; //查询词 $queryKeywords = preg_replace('#\s+#', ' ',$queryKeywords);//将字符串中多个连续空格替换为一个空格 $keywords=explode(" ",$queryKeywords); //查询词按空格分割 //根据不同的数据表生成不同的查询语句 if($queryType=="users") { $sqlsmt="select email,truename,enName,stuid,degree,supervisorname,tel,room from $queryType where "; //查询语句的初始值 //利用循环 生成对每个关键词的查询语句 foreach ($keywords as $keyword) { $sqlsmt.="concat(email,truename,enName,stuid,degree,supervisorname,tel,room) like '%$keyword%' or ";//本句是关键,利用concat函数实现从多个字段查询单个关键词,并用' or '关键词把每个关键词的concat结果合并 } $sqlsmt=substr($sqlsmt,0,strlen($sqlsmt)-3); //去掉查询字符串尾部的' or ' $sqlsmt.=" order by degree asc, stuid desc"; //追加排序子句 } else if($queryType=="papers") { $sqlsmt="select authors,title,jorc,vap,level,status from $queryType where "; foreach ($keywords as $keyword) { $sqlsmt.="concat(authors,title,jorc,vap,level,status) like '%$keyword%' or "; } $sqlsmt=substr($sqlsmt,0,strlen($sqlsmt)-3); $sqlsmt.=" order by level desc, vap desc"; } else if($queryType=="softwares") { $sqlsmt="select authors,title,num,date from $queryType where "; foreach ($keywords as $keyword) { $sqlsmt.="concat(authors,title,num,date) like '%$keyword%' or "; } $sqlsmt=substr($sqlsmt,0,strlen($sqlsmt)-3); $sqlsmt.=" order by date desc"; } else if($queryType=="patents") { $sqlsmt="select authors,title,acceptDate,acceptNum,authorizeDate,authorizeNum from $queryType where "; foreach ($keywords as $keyword) { $sqlsmt.="concat(authors,title,acceptDate,acceptNum,authorizeDate,authorizeNum) like '%$keyword%' or "; } $sqlsmt=substr($sqlsmt,0,strlen($sqlsmt)-3); $sqlsmt.=" order by acceptDate desc"; } $myrs=mysql_query($sqlsmt);//执行查询 if(mysql_num_rows($myrs)==0)//如果结果为空 返回'no' { echo(json_encode("no")); } else //否则返回json格式的结果 { while($row=mysql_fetch_array($myrs)) { $temp[]=$row; } echo(json_encode($temp)); } "//img.jbzj.com/file_images/article/201704/2017415111543727.png" alt="" />更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP+ajax技巧与应用小结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月15日
2024年11月15日
- 炉石传说30.6.2补丁后有什么卡组 30.6.2最强卡组最新推荐
- 模拟之声慢刻CD《蔡琴名曲回顾遇听》[原抓WAV+CUE]
- BruceLiu-WAVES(MusicbySatie)(2024)2CD[24Bit-96kHz]FLAC
- KonstantinKrimmel-MythosSchubertLoewe(2024)[24Bit-96kHz]FLAC
- 2024雷蛇高校挑战赛 嘤式分解助力收官之战
- 海信发布110吋世俱杯官方定制AI电视 引领智能观赛
- 海信发布27英寸显示器大圣G5 Pro:采用自研超解析芯片、友达原厂模组
- 蔡琴《机遇》1:1母盘直刻日本头版[WAV分轨][1.1G]
- 陈百强《与你几分钟的约会》XRCD+SHMCD限量编号版[低速原抓WAV+CUE][994M]
- 陈洁丽《监听王NO.1 》示范级发烧天碟[WAV+分轨][1.1G]
- 单色凌.2014-小岁月太着急【海蝶】【WAV+CUE】
- 陈淑桦.1988-抱紧我HOLD.ME.NOW【EMI百代】【WAV+CUE】
- 黄妃.2020-色違【米乐士娱乐】【FLAC分轨】
- LouisHayes-ArtformRevisited(2024)[24Bit-96kHz]FLAC
- 永恒英文金曲精选5《TheBestOfEverlastingFavouritesVol.5》[WAV+CUE]