php拼音模糊查询,PHP模糊查询技术实例分析【附源码下载】
本文实例讲述了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模糊查询技术实例分析【附源码下载】相关推荐
- cesium 3dtiles 加载本地数据_cesium结合geoserver实现地图空间查询(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...
- geoserver三维_cesium结合geoserver实现地图空间查询(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...
- IT技术文章示例(附源码)
IT技术文章示例(附源码) 重点推荐 1.jquery+swfupload+servlet 多文件上传:http://www.ityangba.com/thread-49-1-1.html 2.jav ...
- MongoDB数据访问[C#]附源码下载(查询增删改) 转载
安装完MongoDBhttp://localhost:28017/监测是否成功! vs 2008 C# MongoDB 源代码下载地址:http://download.csdn.net/source/ ...
- python开发技术详解pdf下载_python开发技术详解附源码-python开发技术详解电子书pdf下载高清去水印版-精品下载...
Python开发技术详解适合Python爱好者.大中专院校的学生.社会培训班的学生以及用Python语言进行系统管理.GUI开发.Web开发.数据库编程.网络编程的人员使用. 内容提要 Python是 ...
- java技术分享主题_Java开发入门:适合新手练手的Java项目(附源码下载)
Java作为一门古老的语言,已有20年左右的历史,这在发展日新月异的技术圈可以说是一个神话.虽然不少人曾抱怨Java语言就像老太太的裹脚布,又臭又长,有时写了500行都不能表达程序员的意图. 但从市场 ...
- java反射源码_java反射技术详解附源码
在学校学习Java时,由于学的不扎实,也没经历过太多实战项目,所以很多重要的知识点瞟一眼就过去了,比如现在要讲的反射,当时直接就忽略掉了,可现在发现很多地方需要反射,不得不重新学习一下,上学欠了太多债 ...
- [附源码]计算机毕业设计Python+uniapp智能公交查询APP59sm2(程序+lw+APP+远程部署)
[附源码]计算机毕业设计Python+uniapp智能公交查询APP59sm2(程序+lw+APP+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Py ...
- java计算机毕业设计飞机航班信息查询系统(附源码、数据库)
java计算机毕业设计飞机航班信息查询系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclisp ...
最新文章
- 【转】SAP整合技术研究
- 交换机二层交换和三层交换技术比较
- SAP Spartacus里的routerLink测试
- SAP License:FICO重要概念(一)
- winform 属性
- paip.python 执行shell 带空格命令行attilax总结
- 110道 MySQL面试题及答案 (持续更新)
- cmd命令把GHO转换成虚拟机可直接加载的硬盘格式实例
- paper论文搜集技巧(paperswithcode)
- PhotoShop基础
- 基于C#制作一个ChatGPT桌面助手
- Windows安装VMware(Linux系统)
- IEEE754详解(最详细简单有趣味的介绍)
- Java——环境变量的配置
- 《The C Programming Language》答案(第一章)
- 如何摆平你的WLAN控制器?
- 14、ADS使用记录之功率放大器设计
- (轉貼) Bit Twiddling Hacks (SOC) (Verilog) (C)
- 如何使用vscode登陆服务器
- react这几年重大意义的变化
热门文章
- 局部变量 final Java_Java局部变量final
- R语言之斐波那契数列
- 数字图像处理2018-10-9
- cgi标准面试php,PHP面试:简述CGI、FastCGI和PHP
- java测试类 main方法_Java使用agent实现main方法之前的实例详解
- igraph 算网络指标_量化投资中,计算技术指标时常见的8个坑
- 语义分割--Mix-and-Match Tuning for Self-Supervised Semantic Segmentation
- python tqdm添加进度条
- java数据结构堆_Java 数据结构-堆实现
- mysql时间戳group by操作,mysql使用FROM_UNIXTIME将时间戳按日期group by