Maison >développement back-end >Problème PHP >Comment implémenter des enregistrements de recherche en php
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 :
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 :
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!