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 '^...$';
案例
开发流程
源码分析
<?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'> ".$keywords." </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>
源码下载地址:
链接:https://pan.baidu.com/s/1F8duu8G2iCa4xgNLBbiLCg 密码:96fn
相关推荐:
Atas ialah kandungan terperinci PHP如何实现模糊查询(图文代码). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.
