• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP模糊查询技术实例分析【附源码下载】

    本文实例讲述了PHP模糊查询技术。分享给大家供大家参考,具体如下:

    简介

    功能

    PHP用户查询器案例分析

    课程目标

    课程重点

    课程案例(效果图)

    数据库设计

    用户表(user):

    CREATE TABLE user(
      `uid` int(10) AUTO_INCREMENT PRIMARY KEY COMMENT '用户ID',
      `username` varchar(30) NOT NULL DEFAULT '' COMMENT '用户名',
      `password` varchar(6) NOT NULL DEFAULT '' COMMENT '密码',
      `sex` char(2) NOT NULL DEFAULT '保密' COMMENT '性别',
      `email` varchar(40) NOT NULL DEFAULT '' COMMENT '邮箱',
      `hobby` varchar(255) NOT NULL DEFAULT '' COMMENT '兴趣爱好',
      KEY `username`(`username`)//索引
    )ENGINE=MyISAM DEFAULT CHARSET=UTF8 COMMENT='用户表'
    
    

    索引的好处:

    如果按照某个条件去检索数据,如果这个条件字段没有建立索引,查询的时候是会遍历整张表,如果你建立了索引,查询的时候就会根据索引来查询,进而提高查询性能

    Mysql模糊查询语法

    SQL匹配模式

    代码实现:

    SELECT * FROM user WHERE username like 'l%';
    SELECT * FROM user WHERE username like '%e';
    SELECT * FROM user WHERE username like '%o%';
    SELECT * FROM user WHERE username like '___';//三个_,表示username为三个字符的结果集
    SELECT * FROM user WHERE username like '_o%';//第二个字符为o
    
    

    正则表达式匹配模式

    eg:x* 表示匹配任何数量的x字符

    eg:[abc] 匹配字符a、b后者c
       [a-z] 匹配任何字母
       [0-9] 匹配任何数字
       [0-9]* 匹配任何数量的任何数字
       [a-z]* 匹配任何数量的任何字母

    eg:^a 表示以字母a开头

    eg:s$ 表示以字母s结尾

    code:

    SELECT * FROM user WHERE username REGEXP '^l';
    SELECT * FROM user WHERE username REGEXP '...';
    
    

    PS:如果仅使用.通配符,有几个点通配符,假设N个,那么匹配模式表示大于等于N个

    ^...$          //表示只能为三个字符
    SELECT * FROM user WHERE username REGEXP '^...$';

    案例

    开发流程

    源码分析

    ?php
    //关键字
    $keywords = isset($_POST['keywords'])?$_POST['keywords']:'';
    //连接数据库,php7废弃了mysql_connect推荐使用mysqli_connect
    $link = mysqli_connect(
      "localhost:3306",
      "root",
      "root",
      "mook"
    );
    if(!empty($keywords)){
      $sql = "SELECT * FROM user WHERE username like '%{$keywords}%' ";
    }else{
      $sql = "SELECT * FROM user";
    }
    $usersArr = [];
    $result = $link->query($sql);
    while($row = $result->fetch_assoc())
    {
      //简单高亮显示
      // $row['username'] = str_replace($keywords, "font color='red'>".$keywords."/font>",$row['username']);
      //高亮显示,不区分关键字的大小写
      $usernameArr = preg_split('/(?!^)(?!$)/u',$row['username']);
      foreach ($usernameArr as $key => $value) {
        if(strtoupper($keywords) == strtoupper($value)){
          $usernameArr[$key] = "font color='red'>".$value."/font>";
        }
      }
      $row['username'] = join($usernameArr);
      $usersArr[] = $row;
    }
    ?>
    !DOCTYPE html>
    html>
    head>
      meta charset="utf-8">
      title>php用户查询器/title>
    /head>
    body>
      h1>php模糊查询/h1>
      form action="index.php" method="post">
        用户名:input type="text" name="keywords" value="" />
        input type="submit" value="提交查询" />
      /form>
      ?php
        if(!empty($keywords)){
          echo "查询关键词:font color='red'>nbsp;".$keywords."nbsp;/font>结果!";
        }
        $tableString = "table width='500' border='1' cellpadding='5'>";
        $tableString .= "tr bgcolor='orange'>th>用户名/th>th>邮箱/th>th>性别/th>/tr>";
        if(!empty($usersArr)){
          foreach ($usersArr as $key => $value) {
            $tableString .= "tr>td>" . $value['username']. "/td>td>" . $value['email'] . "/td>td>".$value['sex']."/td>/tr>";
          }
        }else{
          $tableString .="tr>td colspan='3'>没有数据/td>/tr>";
        }
        $tableString .= "/table>";
        echo $tableString;
      ?>
    /body>
    /html>
    
    

    源码下载地址:

    点击此处本站下载

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
    • PHP+MySQL实现模糊查询员工信息功能示例
    • PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
    • jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
    • PHP中模糊查询并关联三个select框
    • 在php7中MongoDB实现模糊查询的方法详解
    • PHP模糊查询的实现方法(推荐)
    • PHP MYSQL实现登陆和模糊查询两大功能
    • thinkphp实现like模糊查询实例
    上一篇:原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
    下一篇:PHP实现会员账号单唯一登录的方法分析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP模糊查询技术实例分析【附源码下载】 PHP,模糊,查询,技术,实例分析,