Inhaltsverzeichnis
Einführung
Funktion
Kursziele
Wichtige Punkte des Kurses
Kursfall (Rendering)
Mysql-Fuzzy-Abfragesyntax
SQL-Übereinstimmungsmuster
Abgleichsmuster für reguläre Ausdrücke
Fall
Entwicklungsprozess
Quellcode-Analyse
php模糊查询
Heim Backend-Entwicklung PHP-Tutorial So implementieren Sie Fuzzy-Abfragen in PHP (Grafikcode)

So implementieren Sie Fuzzy-Abfragen in PHP (Grafikcode)

Aug 18, 2018 pm 05:34 PM
php 模糊搜索

Der Inhalt dieses Artikels befasst sich mit der Implementierung von Fuzzy-Abfragen (Grafik- und Textcode) in PHP. Ich hoffe, dass er für Freunde hilfreich ist.

Einführung

  • Im Wesentlichen aufschlussreiche PHP-Fuzzy-Query-Technologie

Funktion

  • Finden Sie relevante Benutzer basierend auf den eingegebenen Schlüsselwörtern

PHP User Queryer Case AnalysisSo implementieren Sie Fuzzy-Abfragen in PHP (Grafikcode)

Kursziele

  • Meistern Sie die Anwendung der PHP-Fuzzy-Technologie

Wichtige Punkte des Kurses

  • Die Syntax der PHP-Fuzzy-Abfrage

  • Anwendung der PHP-Fuzzy-Abfrage

Kursfall (Rendering)

So implementieren Sie Fuzzy-Abfragen in PHP (Grafikcode)
So implementieren Sie Fuzzy-Abfragen in PHP (Grafikcode)Datenbankdesign

Benutzertabelle ( Benutzer):

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='用户表'
Nach dem Login kopieren

Vorteile der Indizierung:
Wenn Sie Daten gemäß einer bestimmten Bedingung abrufen und das Bedingungsfeld nicht indiziert ist, wird bei der Abfrage die gesamte Tabelle durchlaufen. Wenn Sie einen Index erstellen, basiert die Abfrage auf dem Index, wodurch die Abfrageleistung verbessert wird

Mysql-Fuzzy-Abfragesyntax

  • SQL-Abgleichsmodus (der in der Entwicklung am häufigsten verwendete)

  • Muster für den Abgleich regulärer Ausdrücke

SQL-Übereinstimmungsmuster
  • Sie können den Operator = oder != nicht verwenden, sondern den Operator LIKE oder NOT LIKE

  • verwendet den SQL-Matching-Modus. MYSQL bietet zwei Platzhalterzeichen:
    ①% steht für eine beliebige Anzahl beliebiger Zeichen (einschließlich 0)
    ②_ Jedes durch

  • dargestellte einzelne Zeichen verwendet den SQL-Übereinstimmungsmodus. Wenn das Übereinstimmungsformat keines der beiden oben genannten Platzhalterzeichen enthält, entspricht der Abfrageeffekt = oder !=

  • SQL-Abgleichsmuster verwenden, Groß- und Kleinschreibung standardmäßig nicht berücksichtigen

代码实现:
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
Nach dem Login kopieren
Abgleichsmuster für reguläre Ausdrücke
  • . entspricht jedem einzelnen Zeichen

  • * entspricht 0 oder mehr Zeichen davor

eg:x* 表示匹配任何数量的x字符
Nach dem Login kopieren
  • [] entspricht jedem Zeichen in Klammern

eg:[abc] 匹配字符a、b后者c
   [a-z] 匹配任何字母   
   [0-9] 匹配任何数字   
   [0-9]* 匹配任何数量的任何数字   
   [a-z]* 匹配任何数量的任何字母
Nach dem Login kopieren
  • ^ bedeutet, dass es mit einem bestimmten Zeichen oder einer bestimmten Zeichenfolge beginnt

eg:^a 表示以字母a开头
Nach dem Login kopieren
  • $ stellt ein bestimmtes Zeichen- oder Zeichenfolgenergebnis dar

eg:s$ 表示以字母s结尾
Nach dem Login kopieren
  • Verwenden Sie reguläre Ausdrücke. Operatoren, die in Vergleichsmustern verwendet werden: REGEXP(RLIKE) oder NOT REGEXP(NOT RLIKE)

code:SELECT * FROM user WHERE username REGEXP '^l';
SELECT * FROM user WHERE username REGEXP '...';
Nach dem Login kopieren

PS: Wenn Sie nur das Platzhalterzeichen . verwenden, gibt es mehrere Punkt-Platzhalterzeichen, vorausgesetzt, N , dann stellt das passende Muster größer als dar oder gleich N
So implementieren Sie Fuzzy-Abfragen in PHP (Grafikcode)

  • genaue Anzahl von Zeichen

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

So implementieren Sie Fuzzy-Abfragen in PHP (Grafikcode)

Fall

Entwicklungsprozess

So implementieren Sie Fuzzy-Abfragen in PHP (Grafikcode)

Quellcode-Analyse

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

Quellcode-Download-Adresse:

Link :https: //pan.baidu.com/s/1F8duu8G2iCa4xgNLBbiLCg Passwort: 96fn

Verwandte Empfehlungen:

PHP-Codebeispiel, um zu erkennen, dass Mitgliedskonten nur eindeutig angemeldet werden können

PHP-Codebeispiel, um zu erkennen, dass ein Mitgliedskonto nur als Einziger angemeldet sein kann

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Fuzzy-Abfragen in PHP (Grafikcode). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP arbeitet mit Datenbank CakePHP arbeitet mit Datenbank Sep 10, 2024 pm 05:25 PM

Das Arbeiten mit der Datenbank in CakePHP ist sehr einfach. In diesem Kapitel werden wir die CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) verstehen.

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

See all articles