Maison >développement back-end >Problème PHP >Comment implémenter des enregistrements de recherche en php

Comment implémenter des enregistrements de recherche en php

PHPz
PHPzoriginal
2023-04-18 09:48:18682parcourir

Avec le développement d'Internet, les moteurs de recherche sont devenus l'un des canaux importants permettant aux gens d'obtenir des informations. De nombreux sites Web sont également équipés de leurs propres fonctions de recherche pour aider les utilisateurs à trouver rapidement le contenu dont ils ont besoin. PHP, en tant que langage de programmation couramment utilisé, peut également implémenter des fonctions d'enregistrement de recherche pour offrir aux utilisateurs une meilleure expérience utilisateur. Cet article explique comment implémenter les enregistrements de recherche PHP.

1. Conception de la base de données

La première chose à considérer est la conception de la base de données. Dans cet article, MySQL est utilisé comme exemple.

1.1 Conception de table

Vous devez créer une table pour stocker les enregistrements recherchés par l'utilisateur, comprenant les champs suivants :

  1. id : identifiant unique de l'enregistrement, incrémenté automatiquement
  2. keyword : mots-clés recherchés par l'utilisateur
  3. search_time : user L'heure de recherche, au format datetime
  4. user_id : l'identifiant unique de l'utilisateur, peut être vide

La structure de la table est la suivante :

CREATE TABLE search_history (
 id int(11) NOT NULL AUTO_INCREMENT,
 keyword varchar(255) NOT NULL DEFAULT '',
 search_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
 user_id int(11) DEFAULT NULL,
 PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

1.2 Description du champ

Dans le tableau ci-dessus, vous devez faire attention aux points suivants :

  1. id est la clé primaire, automatiquement incrémentée et utilisée pour identifier de manière unique un enregistrement.
  2. mot-clé est le mot-clé recherché par l'utilisateur et ne doit pas être vide.
  3. search_time est l'heure à laquelle la recherche a lieu, le format est de type datetime et la valeur par défaut est définie sur l'heure actuelle pour un enregistrement facile.
  4. user_id est l'identifiant unique de l'utilisateur, ce qui peut faciliter les statistiques et l'analyse du comportement de l'utilisateur dans certains scénarios, mais ce n'est pas un champ obligatoire, il peut donc être vide.

2. Enregistrer l'historique de recherche

Dans la page, la fonction de recherche de l'utilisateur peut être implémentée via un formulaire, et en fonction du contenu de la recherche, elle est enregistrée dans la table search_history mentionnée ci-dessus. Le code spécifique est le suivant :

2.1 Connectez-vous à la base de données

Vous devez d'abord vous connecter à la base de données afin que les résultats de la recherche puissent être stockés dans la base de données.

$conn = mysqli_connect('localhost', 'root', 'password', 'database_name');
if (!$conn) {

die("Connection failed: " . mysqli_connect_error());

}
mysqli_set_charset($conn,"utf8mb4");

2.2 Gérer les requêtes de recherche

Obtenez ce que l'utilisateur a saisi dans le champ de recherche, par exemple :

$keyword = $_REQUEST['keyword'];

Si l'utilisateur n'a rien saisi, vous n'avez pas besoin de l'enregistrer; à la base de données.

if (empty ($keyword)) {

return;

}

2.3 Enregistrez les résultats de la recherche dans la base de données

Ensuite, enregistrez les résultats de la recherche dans la table search_history ci-dessus pour enregistrer l'historique de recherche de l'utilisateur.

$sql = "INSERT INTO search_history (keyword, user_id) VALUES ($keyword', 1)";
mysqli_query($conn, $sql);

Dans le code ci-dessus, le mot-clé de recherche et le nom unique de l'utilisateur L'identifiant (provisoirement 1) est enregistré dans les champs mot-clé et user_id de la table search_history.

3. Afficher l'historique de recherche

Si vous devez afficher l'historique de recherche sur le site Web, vous pouvez l'obtenir en interrogeant la table search_history dans la base de données. Ci-dessous, nous présenterons comment implémenter cette fonction via PHP.

3.1 Interroger la base de données

$conn = mysqli_connect('localhost', 'root', 'password', 'database_name');
if (!$conn) {

die("Connection failed: " . mysqli_connect_error());

}
mysqli_set_charset($conn,"utf8mb4 " );

$sql = "SELECT * FROM search_history ORDER BY search_time DESC LIMIT 10";
$result = mysqli_query($conn, $sql);

Le code ci-dessus se connecte d'abord à la base de données et interroge tous les enregistrements du table search_history. Triez par ordre chronologique inverse et obtenez les 10 enregistrements les plus récents.

3.2 Obtenir des enregistrements historiques

Ensuite, parcourez les enregistrements obtenus et affichez-les sur la page.

if (mysqli_num_rows($result) > 0) {

while($row = mysqli_fetch_assoc($result)) {
    echo $row["keyword"];
}

} else {

echo "暂无搜索历史记录";

}

Le code ci-dessus détermine d'abord si le résultat de la requête est vide. S'il n'est pas vide, il parcourt la clé de. chaque enregistrement. Les mots sont affichés sur la page, et si elle est vide, un message d'invite est affiché.

4. Supprimer l'historique de recherche

Si l'utilisateur doit supprimer un historique de recherche, il peut effacer les enregistrements qui doivent être supprimés de la base de données en ajoutant un bouton "Supprimer" sur la page.

4.1 Connexion à la base de données

L'opération est la même que ci-dessus et ne sera pas répétée ici.

$conn = mysqli_connect('localhost', 'root', 'password', 'database_name');
if (!$conn) {

die("Connection failed: " . mysqli_connect_error());

}
mysqli_set_charset($conn,"utf8mb4");

4.2 Gérer la demande de suppression

Obtenez l'identifiant de l'enregistrement dont l'utilisateur a besoin pour le supprimer et le supprimer de la base de données.

$id = $_REQUEST['id'];

if (!empty($id)) {

$sql = "DELETE FROM search_history WHERE id='$id'";
mysqli_query($conn, $sql);

}

Si l'identifiant est vide, aucune action n'est requise.

5.Résumé

Grâce à l'introduction ci-dessus, nous pouvons constater que la mise en œuvre des enregistrements de recherche PHP doit principalement s'articuler autour de la conception de la base de données. En définissant les champs correspondants dans le tableau, les résultats de la recherche et la durée d'enregistrement sont stockés dans la base de données pour faciliter l'interrogation. et affichage. Bien entendu, vous devez faire attention aux problèmes de sécurité et éviter les injections SQL et autres attaques. Dans le même temps, si vous avez besoin de mettre en œuvre la fonction d'enregistrement de recherche de manière plus flexible, vous pouvez également utiliser d'autres technologies, telles que les cookies, les sessions, etc.

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