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

简介

从本质上揭密PHP模糊查询技术

功能

根据输入的关键字查找相关用户

PHP用户查询器案例分析

课程目标

掌握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匹配模式(开发中应用最多的一种)

正则表达式匹配模式

SQL匹配模式

使用SQL匹配模式,不能使用操作符=或者!=,而是使用操作符LIKE或者NOT LIKE

使用SQL匹配模式,MYSQL提供两种通配符:

①%表示任意数量的任意字符(其中包含0个)

②_表示的任意单个字符

使用SQL匹配模式,如果匹配格式中不包含以上两种通配符的任意一个,其查询效果等同于=或者!=

使用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

正则表达式匹配模式

. 匹配任意单个字符

* 匹配0个或多个在他前面的字符

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

[] 匹配括号中的任意字符

eg:[abc] 匹配字符a、b后者c

[a-z] 匹配任何字母

[0-9] 匹配任何数字

[0-9]* 匹配任何数量的任何数字

[a-z]* 匹配任何数量的任何字母

^ 表示以某个字符或者字符串开头

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

$ 表示已某个字符或者字符串结果

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

使用正则表达式匹配模式使用的操作符:REGEXP(RLIKE) 或者NOT REGEXP(NOT RLIKE)

code:

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

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

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

精确字符数

^...$          //表示只能为三个字符

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

案例

开发流程

源码分析

//关键字

$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, "".$keywords."",$row['username']);

//高亮显示,不区分关键字的大小写

$usernameArr = preg_split('/(?

foreach ($usernameArr as $key => $value) {

if(strtoupper($keywords) == strtoupper($value)){

$usernameArr[$key] = "".$value."";

}

}

$row['username'] = join($usernameArr);

$usersArr[] = $row;

}

?>

php用户查询器

php模糊查询

用户名:

if(!empty($keywords)){

echo "查询关键词: ".$keywords." 结果!";

}

$tableString = "

$tableString .= "

用户名邮箱性别";

if(!empty($usersArr)){

foreach ($usersArr as $key => $value) {

$tableString .= "

" . $value['username']. "" . $value['email'] . "".$value['sex']."";

}

}else{

$tableString .="

没有数据";

}

$tableString .= "

";

echo $tableString;

?>

源码下载地址:

点击此处本站下载。

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

php拼音模糊查询,PHP模糊查询技术实例分析【附源码下载】相关推荐

  1. cesium 3dtiles 加载本地数据_cesium结合geoserver实现地图空间查询(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...

  2. geoserver三维_cesium结合geoserver实现地图空间查询(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...

  3. IT技术文章示例(附源码)

    IT技术文章示例(附源码) 重点推荐 1.jquery+swfupload+servlet 多文件上传:http://www.ityangba.com/thread-49-1-1.html 2.jav ...

  4. MongoDB数据访问[C#]附源码下载(查询增删改) 转载

    安装完MongoDBhttp://localhost:28017/监测是否成功! vs 2008 C# MongoDB 源代码下载地址:http://download.csdn.net/source/ ...

  5. python开发技术详解pdf下载_python开发技术详解附源码-python开发技术详解电子书pdf下载高清去水印版-精品下载...

    Python开发技术详解适合Python爱好者.大中专院校的学生.社会培训班的学生以及用Python语言进行系统管理.GUI开发.Web开发.数据库编程.网络编程的人员使用. 内容提要 Python是 ...

  6. java技术分享主题_Java开发入门:适合新手练手的Java项目(附源码下载)

    Java作为一门古老的语言,已有20年左右的历史,这在发展日新月异的技术圈可以说是一个神话.虽然不少人曾抱怨Java语言就像老太太的裹脚布,又臭又长,有时写了500行都不能表达程序员的意图. 但从市场 ...

  7. java反射源码_java反射技术详解附源码

    在学校学习Java时,由于学的不扎实,也没经历过太多实战项目,所以很多重要的知识点瞟一眼就过去了,比如现在要讲的反射,当时直接就忽略掉了,可现在发现很多地方需要反射,不得不重新学习一下,上学欠了太多债 ...

  8. [附源码]计算机毕业设计Python+uniapp智能公交查询APP59sm2(程序+lw+APP+远程部署)

    [附源码]计算机毕业设计Python+uniapp智能公交查询APP59sm2(程序+lw+APP+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Py ...

  9. java计算机毕业设计飞机航班信息查询系统(附源码、数据库)

    java计算机毕业设计飞机航班信息查询系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclisp ...

最新文章

  1. 【转】SAP整合技术研究
  2. 交换机二层交换和三层交换技术比较
  3. SAP Spartacus里的routerLink测试
  4. SAP License:FICO重要概念(一)
  5. winform 属性
  6. paip.python 执行shell 带空格命令行attilax总结
  7. 110道 MySQL面试题及答案 (持续更新)
  8. cmd命令把GHO转换成虚拟机可直接加载的硬盘格式实例
  9. paper论文搜集技巧(paperswithcode)
  10. PhotoShop基础
  11. 基于C#制作一个ChatGPT桌面助手
  12. Windows安装VMware(Linux系统)
  13. IEEE754详解(最详细简单有趣味的介绍)
  14. Java——环境变量的配置
  15. 《The C Programming Language》答案(第一章)
  16. 如何摆平你的WLAN控制器?
  17. 14、ADS使用记录之功率放大器设计
  18. (轉貼) Bit Twiddling Hacks (SOC) (Verilog) (C)
  19. 如何使用vscode登陆服务器
  20. react这几年重大意义的变化

热门文章

  1. 局部变量 final Java_Java局部变量final
  2. R语言之斐波那契数列
  3. 数字图像处理2018-10-9
  4. cgi标准面试php,PHP面试:简述CGI、FastCGI和PHP
  5. java测试类 main方法_Java使用agent实现main方法之前的实例详解
  6. igraph 算网络指标_量化投资中,计算技术指标时常见的8个坑
  7. 语义分割--Mix-and-Match Tuning for Self-Supervised Semantic Segmentation
  8. python tqdm添加进度条
  9. java数据结构堆_Java 数据结构-堆实现
  10. mysql时间戳group by操作,mysql使用FROM_UNIXTIME将时间戳按日期group by