Maison >développement back-end >Problème PHP >Comment implémenter la fonction de recherche sur le Web en utilisant php
PHP est un langage de script côté serveur largement utilisé dans le développement Web. Il possède des fonctions puissantes et flexibles et peut implémenter une variété de fonctions complexes. Parmi elles, la fonction de recherche est sans aucun doute l'une des fonctions les plus couramment utilisées par les utilisateurs, c'est pourquoi cet article présentera comment utiliser PHP pour implémenter la fonction de recherche Web.
Ajoutez un formulaire de recherche à la page principale de votre site Web, généralement une simple zone de texte et un bouton de recherche. Le code est le suivant :
<form action="search.php" method="get"> <input type="text" name="keyword" placeholder="搜索"> <input type="submit" value="搜索"> </form>
Parmi eux, l'attribut action
spécifie le fichier de traitement lors de la soumission du formulaire comme search.php
, et la méthode L'attribut code> spécifie la méthode de soumission. Pour <code>get
, vous pouvez également utiliser la méthode post
. action
属性指定了表单提交时的处理文件为search.php
,method
属性指定了提交方式为get
,也可以使用post
方式。
将搜索请求提交至search.php
文件进行处理。代码如下:
<?php // 获取提交的搜索关键词 $keyword = $_GET['keyword']; // 连接数据库 $conn = mysqli_connect('localhost', 'root', 'password', 'database'); // 查询匹配的结果 $result = mysqli_query($conn, "SELECT * FROM articles WHERE title LIKE '%$keyword%' OR content LIKE '%$keyword%'"); // 处理查询结果 while ($row = mysqli_fetch_assoc($result)) { // 显示搜索结果 echo $row['title']; // ... } // 关闭数据库连接 mysqli_close($conn); ?>
首先,从$_GET
数据里获取关键词$keyword
,然后连接数据库,使用SELECT
语句查询匹配的结果。这个例子中是查询了articles
表中标题和内容出现关键词$keyword
的所有文章。
最后,处理查询结果并显示在页面上,记得最后关闭数据库连接。
如果要实现精确匹配搜素,则将WHERE
语句中的LIKE
改为=
即可。代码如下:
$result = mysqli_query($conn, "SELECT * FROM articles WHERE title = '$keyword'");
当搜索结果被查询出来后,通常会将其展示在多个页面中。这时,就需要按照划分好的页面条数来显示相关搜索结果。可以使用PHP的LIMIT
语句对查询结果进行分页处理。代码如下:
// 分页每页显示的条数 $pagesize = 10; // 当前页码 $page = isset($_GET['page']) ? intval($_GET['page']) : 1; // 查询总记录数 $count_result = mysqli_query($conn, "SELECT COUNT(*) AS count FROM articles WHERE title LIKE '%$keyword%' OR content LIKE '%$keyword%'"); $count_row = mysqli_fetch_assoc($count_result); $count = $count_row['count']; // 计算总页数 $pagecount = ceil($count / $pagesize); // 分页查询 $start = ($page - 1) * $pagesize; $limit = "$start, $pagesize"; $result = mysqli_query($conn, "SELECT * FROM articles WHERE title LIKE '%$keyword%' OR content LIKE '%$keyword%' LIMIT $limit"); // 处理查询结果 // ... // 显示分页链接 echo "<div class='pagination'>"; for ($i = 1; $i <= $pagecount; $i++) { if ($i == $page) { echo "<span class='current'>$i</span>"; } else { echo "<a href='search.php?keyword=$keyword&page=$i'>$i</a>"; } } echo "</div>";
首先,定义每页显示的条数和当前的页码。然后查询匹配的结果总条数并计算总页数。最后,使用LIMIT
语句对查询结果进行分页,并显示分页链接。其中,$start
和$limit
参数用于控制查询的起始位置和数量。
除了在关键词中使用精确匹配或模糊匹配外,还可以使用全文搜索来实现更加精确的结果匹配。全文搜索可以通过MySQL自带的MATCH
和AGAINST
语句来实现,使用方法如下:
$result = mysqli_query($conn, "SELECT * FROM articles WHERE MATCH(title, content) AGAINST('$keyword' IN NATURAL LANGUAGE MODE)");
关键词$keyword
会被自动分词,匹配title
和content
search.php
pour traitement. Le code est le suivant : 🎜rrreee🎜Tout d'abord, récupérez le mot-clé $keyword
à partir des données $_GET
, puis connectez-vous à la base de données et utilisez le SELECT code> pour interroger le résultat correspondant. Dans cet exemple, tous les articles de la table <code>articles
dont les titres et le contenu apparaissent avec le mot-clé $keyword
sont interrogés. 🎜🎜Enfin, traitez les résultats de la requête et affichez-les sur la page. Pensez à fermer la connexion à la base de données à la fin. 🎜LIKE
dans l'instruction WHERE
par =
C'est ça. Le code est le suivant : 🎜rrreeeLIMIT
de PHP pour paginer les résultats de la requête. Le code est le suivant : 🎜rrreee🎜Définissez d'abord le nombre d'éléments affichés sur chaque page et le numéro de la page actuelle. Recherchez ensuite le nombre total de résultats correspondants et calculez le nombre total de pages. Enfin, utilisez l'instruction LIMIT
pour paginer les résultats de la requête et afficher le lien de pagination. Parmi eux, les paramètres $start
et $limit
sont utilisés pour contrôler la position de départ et la quantité de la requête. 🎜MATCH
et AGAINST
fournies avec MySQL. La méthode d'utilisation est la suivante : 🎜rrreee🎜Le mot-clé $keyword<.> effectuera automatiquement la segmentation de Word, faisant correspondre n'importe quel champ dans <code>title
et content
, et enfin triant et affichant les résultats en fonction du degré de correspondance. 🎜🎜Ce qui précède concerne l'utilisation de PHP pour implémenter la fonction de recherche sur le Web. Grâce aux étapes ci-dessus, nous pouvons rapidement ajouter des fonctions de recherche au site Web et améliorer l'expérience utilisateur du site Web. 🎜
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!