Maison >développement back-end >tutoriel php >Comment utiliser PHP pour développer une recherche en texte intégral et une requête par mot-clé dans un CMS

Comment utiliser PHP pour développer une recherche en texte intégral et une requête par mot-clé dans un CMS

WBOY
WBOYoriginal
2023-06-21 14:45:461016parcourir

Avec le développement continu de la technologie Internet, les systèmes de gestion de contenu (CMS) jouent un rôle de plus en plus important dans les applications réseau. Le CMS peut permettre aux administrateurs et aux créateurs de sites Web de gérer plus facilement le contenu du site Web, et la recherche en texte intégral et la requête par mot clé sont l'une des fonctions couramment utilisées dans le CMS. PHP est un langage de développement Web largement utilisé. Cet article explique comment utiliser PHP pour implémenter la recherche en texte intégral et la requête par mot clé dans un CMS.

1. Recherche en texte intégral

La recherche en texte intégral fait référence à la recherche de mots-clés ou d'expressions spécifiques dans l'ensemble de l'article. Afin d'implémenter la fonction de recherche en texte intégral dans le CMS, vous devez utiliser la fonction de recherche en texte intégral de MySQL. En même temps, le code suivant peut également être utilisé dans d'autres bases de données.

1.1 Créer un formulaire de recherche

Créer un module de recherche dans un site Web CMS est une tâche critique. Le niveau général de compétence et les habitudes d’utilisation des utilisateurs du site Web doivent être pris en considération. Vous trouverez ci-dessous un simple formulaire de recherche contenant une zone de saisie de texte et un bouton de soumission.

<form action="search_results.php" method="post">
    <input type="text" name="search_keyword">
    <input type="submit" name="submit" value="Search">
</form>

1.2 Implémenter la fonction de recherche

Après avoir saisi des mots-clés dans le formulaire de recherche, vous devez insérer les mots-clés dans l'instruction de requête. Ce qui suit est une instruction de requête de recherche en texte intégral MySQL de base.

SELECT * FROM `articles` WHERE MATCH (`title`, `content`) AGAINST ('$search_keyword')

Dans cette instruction de requête, nous demandons si les champs « titre » et « contenu » de la table « articles » contiennent le mot-clé de recherche « $search_keyword ». Lorsqu'un mot-clé correspond, tout le contenu de l'article est renvoyé. Il convient de noter que dans le code PHP, les mots-clés de recherche doivent être échappés à l'aide de la fonction "mysqli_real_escape_string()" de MySQL pour garantir l'exactitude et la sécurité des instructions SQL.

$search_keyword = mysqli_real_escape_string($con, $_POST['search_keyword']);

2. Requête par mot-clé

En plus de la recherche en texte intégral, le CMS a également besoin d'une fonction de requête par mot-clé. Cette fonction est utilisée pour interroger tous les articles liés au mot-clé en fonction du mot-clé fourni par l'utilisateur.

2.1 Créer un formulaire de requête de mots clés

Dans le site Web, pour les requêtes de mots clés, si le pays contient des mots clés plus importants, l'utilisateur peut filtrer les résultats renvoyés par l'application en saisissant les mots clés et en sélectionnant leur importance. Vous trouverez ci-dessous un formulaire de recherche avec trois niveaux de sélecteurs.

<form action="search_results.php" method="post">
    <input type="text" name="search_keyword">
    <select name="importance">
        <option value="1">Low</option>
        <option value="2">Medium</option>
        <option value="3" selected>High</option>
    </select>
    <input type="submit" name="submit" value="Search">
</form>

2.2 Implémenter la fonction de requête par mot-clé

Dans l'implémentation d'une requête par mot-clé, il est nécessaire de combiner l'opérateur « LIKE » de MySQL et l'opérateur logique « AND/OR ». Ce qui suit est une instruction de requête de base pour une requête par mot clé. Parmi eux, dans les applications réelles, $conn doit être remplacé par la connexion correcte à la base de données.

$conn = mysqli_connect($servername, $username, $password, $dbname);
$search_keyword = mysqli_real_escape_string($conn, $_POST['search_keyword']);
$importance = mysqli_real_escape_string($conn, $_POST['importance']);
$query = "SELECT * FROM articles WHERE ";
$query .= "(title LIKE '%$search_keyword%' ";
$query .= "OR content LIKE '%$search_keyword%') ";
if ($importance == 1) {
    $query .= "AND importance = 1";
} elseif ($importance == 2) {
    $query .= "AND importance = 2";
} elseif ($importance == 3) {
    $query .= "AND importance >= 3";
}
$result = mysqli_query($conn, $query);

Dans l'instruction de requête, demandez d'abord si le mot-clé de recherche saisi existe dans le titre ou le contenu. S'il existe, continuez à interroger les articles d'importance égale à 1 ou 2, et les articles d'importance supérieure ou égale à 3. . Il peut y avoir plusieurs résultats, et nous pouvons tous les parcourir pour tous les afficher. Des méthodes similaires peuvent également être utilisées pour d’autres fonctions du CMS, telles que l’ajout, la modification et la suppression d’articles.

La méthode présentée dans cet article n'est qu'une implémentation de base de recherche et de requête et ne peut pas répondre aux besoins de tous les sites Web. Il doit également être étendu et optimisé dans des applications pratiques. Par exemple, vous pouvez utiliser des fonctionnalités telles que la recherche avancée, la pagination et le tri des résultats de recherche. Cependant, le contenu ci-dessus peut également servir de guide d'introduction, vous permettant de mieux comprendre comment utiliser PHP pour développer des recherches en texte intégral et des requêtes par mots clés dans un CMS.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn