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

Apr 18, 2023 am 09:48 AM

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());
Copier après la connexion
Copier après la connexion
Copier après la connexion

}
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;
Copier après la connexion

}

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());
Copier après la connexion
Copier après la connexion
Copier après la connexion

}
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"];
}
Copier après la connexion

} else {

echo "暂无搜索历史记录";
Copier après la connexion

}

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());
Copier après la connexion
Copier après la connexion
Copier après la connexion

}
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);
Copier après la connexion

}

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

OWASP Top 10 PHP: Décrivez et atténue les vulnérabilités communes. OWASP Top 10 PHP: Décrivez et atténue les vulnérabilités communes. Mar 26, 2025 pm 04:13 PM

L'article traite des 10 meilleures vulnérabilités de l'OWASP dans les stratégies PHP et d'atténuation. Les problèmes clés incluent l'injection, l'authentification brisée et les XS, avec des outils recommandés pour surveiller et sécuriser les applications PHP.

PHP 8 JIT (juste à temps) Compilation: comment cela améliore les performances. PHP 8 JIT (juste à temps) Compilation: comment cela améliore les performances. Mar 25, 2025 am 10:37 AM

La compilation JIT de PHP 8 améliore les performances en compilant le code fréquemment exécuté en code machine, bénéficiant aux applications avec des calculs lourds et en réduisant les temps d'exécution.

Encryption PHP: cryptage symétrique vs asymétrique. Encryption PHP: cryptage symétrique vs asymétrique. Mar 25, 2025 pm 03:12 PM

L'article traite du cryptage symétrique et asymétrique en PHP, en comparant leur aptitude, leurs performances et leurs différences de sécurité. Le chiffrement symétrique est plus rapide et adapté aux données en vrac, tandis que l'asymétrique est utilisé pour l'échange de clés sécurisé.

Téléchargements de fichiers sécurisés PHP: prévention des vulnérabilités liées au fichier. Téléchargements de fichiers sécurisés PHP: prévention des vulnérabilités liées au fichier. Mar 26, 2025 pm 04:18 PM

L'article traite de la sécurisation des téléchargements de fichiers PHP pour éviter les vulnérabilités comme l'injection de code. Il se concentre sur la validation du type de fichier, le stockage sécurisé et la gestion des erreurs pour améliorer la sécurité de l'application.

Authentification PHP & amp; Autorisation: mise en œuvre sécurisée. Authentification PHP & amp; Autorisation: mise en œuvre sécurisée. Mar 25, 2025 pm 03:06 PM

L'article examine la mise en œuvre d'authentification et d'autorisation robustes dans PHP pour empêcher un accès non autorisé, détaillant les meilleures pratiques et recommandant des outils d'amélioration de la sécurité.

Protection PHP CSRF: comment empêcher les attaques du CSRF. Protection PHP CSRF: comment empêcher les attaques du CSRF. Mar 25, 2025 pm 03:05 PM

L'article traite des stratégies pour prévenir les attaques du CSRF dans PHP, notamment en utilisant des jetons CSRF, des cookies de même site et une bonne gestion de session.

Validation d'entrée PHP: meilleures pratiques. Validation d'entrée PHP: meilleures pratiques. Mar 26, 2025 pm 04:17 PM

L'article traite des meilleures pratiques pour la validation des entrées PHP pour améliorer la sécurité, en se concentrant sur des techniques telles que l'utilisation de fonctions intégrées, une approche de liste blanche et une validation côté serveur.

Limitation du taux de l'API PHP: stratégies de mise en œuvre. Limitation du taux de l'API PHP: stratégies de mise en œuvre. Mar 26, 2025 pm 04:16 PM

L'article traite des stratégies de mise en œuvre de la limitation du taux d'API en PHP, y compris des algorithmes comme un godet de jeton et un seau qui fuit, et en utilisant des bibliothèques comme Symfony / Rate-Limiter. Il couvre également la surveillance, l'ajustement dynamiquement des limites de taux et la main

See all articles