PHP implémente des fonctions de gestion de balises et de recommandation dans les sites Web de questions et réponses de connaissances
Dans les sites Web de questions et réponses de connaissances, la gestion des balises est une fonction très importante, qui peut aider les utilisateurs à mieux classer et récupérer les questions. Dans le même temps, la fonction de recommandation peut recommander des questions pertinentes en fonction des intérêts et du comportement historique de l'utilisateur pour améliorer l'expérience utilisateur. Cet article explique comment utiliser PHP pour réaliser ces deux fonctions.
Mise en œuvre de la fonction de gestion des balises :
Tout d'abord, nous devons créer une table de balises (tag) et une table de questions (question) pour stocker les informations sur les balises et les questions. La table des balises comprend au moins deux champs : id et name, et la table des questions comprend au moins trois champs : id, title et content.
CREATE TABLE `tag` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `question` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(100) NOT NULL, `content` text NOT NULL, PRIMARY KEY (`id`) );
Les utilisateurs peuvent sélectionner les balises correspondantes lorsqu'ils posent des questions. Lorsque l'utilisateur clique sur le bouton Soumettre, nous devons insérer les informations sur la balise et la question dans le tableau des balises et le tableau des questions.
// 获取用户输入的标签和问题信息 $tags = $_POST['tags']; $title = $_POST['title']; $content = $_POST['content']; // 插入问题信息 $query = "INSERT INTO question (title, content) VALUES ('$title', '$content')"; mysql_query($query); // 插入标签信息 $questionId = mysql_insert_id(); foreach ($tags as $tag) { $query = "INSERT INTO tag (name, question_id) VALUES ('$tag', '$questionId')"; mysql_query($query); }
Les utilisateurs peuvent rechercher des questions connexes en fonction de balises. Nous pouvons utiliser l'opération SQL JOIN pour associer la table d'étiquettes et la table de questions, puis filtrer en fonction du nom de l'étiquette.
$tag = $_GET['tag']; $query = "SELECT q.* FROM question q INNER JOIN tag t ON q.id = t.question_id WHERE t.name = '$tag'"; $result = mysql_query($query); while ($row = mysql_fetch_assoc($result)) { echo $row['title'], "<br/>"; }
Implémentation de la fonction de recommandation :
La fonction de recommandation doit obtenir des balises basées sur le comportement historique de l'utilisateur et faire des recommandations en analysant les balises fréquemment utilisées par les utilisateurs. Nous pouvons obtenir des balises en interrogeant les questions posées par les utilisateurs.
$userId = $_SESSION['user_id']; $query = "SELECT t.name FROM tag t INNER JOIN question q ON t.question_id = q.id WHERE q.user_id = '$userId'"; $result = mysql_query($query); while ($row = mysql_fetch_assoc($result)) { echo $row['name'], "<br/>"; }
En fonction des balises qui apparaissent fréquemment dans l'historique des utilisateurs, nous pouvons recommander les questions correspondantes. Nous pouvons utiliser l'opération IN de SQL pour obtenir des questions connexes basées sur le nom de la balise.
$tags = implode(",", $userTags); $query = "SELECT * FROM question WHERE id NOT IN (SELECT t.question_id FROM tag t WHERE t.name IN ($tags)) LIMIT 5"; $result = mysql_query($query); while ($row = mysql_fetch_assoc($result)) { echo $row['title'], "<br/>"; }
Ce qui précède explique comment utiliser PHP pour implémenter des fonctions de gestion de balises et de recommandation dans un site Web de questions et réponses de connaissances. Grâce à la gestion des balises, nous pouvons mieux classer et récupérer les questions ; grâce à la fonction de recommandation, nous pouvons fournir des questions pertinentes basées sur les intérêts et les comportements historiques des utilisateurs pour améliorer l'expérience utilisateur. Bien entendu, dans les applications pratiques, une extension et une optimisation supplémentaires peuvent être réalisées en fonction de besoins spécifiques.
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!