php+mysql+ajax如何实现单表多字段多关键词查询
创始人
2024-12-08 20:42:11
0次

具体如下:

单表多字段查询在一些稍微复杂一点的查询中十分有用。这里主要利用MySQL数据库中的concat函数实现单表多字段多关键词查询。并且显示查询结果的表格可根据所选数据表动态生成。

html代码:



  
    
    
    
    
    
      $(function(){
        //回车提交查询
        $('#queryBox').keydown(function(e){
          if(e.keyCode == 13)
          {
            $("#query").focus();//查询按钮获得焦点
            $("#query").click();//调用点击提交按钮
          }
        });
        //点击查询按钮
        $("#query").click(function(){
          //获取用户选择的数据表和查询关键词
          var queryType=$("#queryType").val().trim();
          var queryKeywords=$("#queryKeywords").val().trim();
          //对查询关系词的内容进行限制,比如只能输入汉字、字母、数字和空格。
          var reg=/^[ a-zA-Z0-9\u4e00-\u9fa5]+$/;
          if(reg.test(queryKeywords)==false)
          {
            $("#queryTip").text("您输入的关键词有部分内容不符合要求,只能输入汉字、字母、数字和空格。");
          }
          //如果内容检测通过,开始提交查询
          else
          {
            if(queryType!="" && queryKeywords!="")
            {
              $("#queryTip").text("正在为您检索,请稍候……");
              //使用ajax访问php页面进行查询
              $.ajax({
                type:"post",
                url:"queryInIndex.php",
                async:true,
                data:{queryType:$("#queryType").val(),queryKeywords:$("#queryKeywords").val()},
                dataType:"json",
                success:function(data){
                  if(data=="no")
                  {
                    $("#queryTip").text("没有找到您要查询的信息。");
                  }
                  else
                  {
                    $("#queryTip").text("为您找到 "+data.length+" 条信息。");
                    //预设结果表格字符名
                    if($("#queryType").val()=="users")
                      fieldsString="邮箱,姓名,英文名,学号,学位类型,导师,手机,房间";
                    else if($("#queryType").val()=="papers")
                      fieldsString="作者,标题,期刊/会议,卷期页,级别,状态";
                    else if($("#queryType").val()=="softwares")
                      fieldsString="作者,标题,登记号,日期";
                    else if($("#queryType").val()=="patents")
                      fieldsString="作者,标题,受理日期,受理号,授权日期,授权号";
                    //调用函数创建表格
                    createTable("queryResultList",data,fieldsString,"queryResultPager");
                    $("#queryKeywords").focus();// 关键词文本框继续获得焦点,以方便用户继续输入内容
                  }
                }
              });
            }
            else
            {
              $("#queryTip").text("请先选择查询类型,并输入关键词,然后点击查询按钮。");
              $("#queryKeywords").focus();
            }
          }
        })
        function createTable(tableHolder,data,fieldsString,pagerHolder)
        //自动创建结果表格的函数
        /*
         参数含义:
         tableHolder:显示结果表格的父元素
         data:JSON格式的查询结果
         fieldsString:字段名字符串
         pagerHolder:显示分页导航的元素
         * */
        {
          fieldsArr=fieldsString.split(",");//对字段名字符串进行分割
          var columnNum=fieldsArr.length; //获取列数
          var rowNum=data.length;//获取行数
          $('#'+tableHolder).html("");//清除现有表格
          $('#'+tableHolder).append(""); //设置表格结构
          var i=0; //临时循环变量
          while(i"+fieldsArr[i]+"");
            i++;
          }
          i=0;
          while(i")
            while(j"+data[i][j]+"");
              j++;
            }
            $('#'+tableHolder+" tbody").append("")
            i++;
          }
          //分页导航,这里利用jPages插件
          $("#"+pagerHolder).jPages({
           containerID : tableHolder+" tbody", //存放表格的窗口标签ID
           previous : "前一页", //指示首页的按钮
           next : "下一页",//指示尾页的按钮
           perPage : 10,//每页显示表格的行数
           delay : 0 //分页时动画持续时间,0表示无动画
          });
          //设置结果表格的隔行变色
          $('#'+tableHolder+" tr:odd").css("background-color","#fff");
          $('#'+tableHolder+" tr:even").css("background-color","#efefef");
        }
      })
    
  

  
    
      
        请选择数据表
        学生信息
        论文
        软著
        专利
      
    
    
      
       
    
    本功能支持以空格为分割标记的多词查询。
  
  
  

queryInIndex.php:

运行结果截图:

php+mysql+ajax如何实现单表多字段多关键词查询

php+mysql+ajax如何实现单表多字段多关键词查询

php有什么特点

1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流与非主流的数据库。4、面向对象编程:PHP提供了类和对象。5、版本更新速度快。6、具有丰富的功能。7、可伸缩性。8、功能全面,包括图形处理、编码与解码、压缩文件处理、xml解析等。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...