Utilisez PHP pour développer les fonctions de notation et de tri des questions sur le site Web de questions-réponses sur les connaissances
Avec le développement d'Internet, le site Web de questions-réponses sur les connaissances est désormais devenu l'un des canaux importants permettant aux utilisateurs d'acquérir des connaissances et de résoudre des problèmes. Ces sites Web donnent aux utilisateurs la liberté de poser des questions, de répondre et de commenter, mais la manière de noter et de classer les questions devient une question clé. Cet article explique comment utiliser PHP pour développer des fonctions de notation et de tri des questions dans un site Web de questions et réponses de connaissances.
Tout d'abord, nous devons créer des tableaux pertinents dans la base de données pour stocker les questions et les données de notation. Supposons que nous ayons deux tables, l'une est la table des questions, qui contient des champs tels que l'ID de la question, le titre et le contenu, et l'autre est la table des évaluations, qui contient des champs tels que l'ID de la note, l'ID de la question, l'ID de l'utilisateur et la valeur de la note. .
CREATE TABLE questions ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255), content TEXT ); CREATE TABLE ratings ( id INT AUTO_INCREMENT PRIMARY KEY, question_id INT, user_id INT, rating INT );
Dans le site Web de questions et réponses de connaissances, les utilisateurs peuvent évaluer les questions pour exprimer leur satisfaction à l'égard des questions. Nous pouvons ajouter un composant d'évaluation au bas de la page de détails de la question, et les utilisateurs peuvent évaluer la question en cliquant sur un bouton.
<?php // 获取当前问题的ID $questionId = $_GET['id']; if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 获取用户ID和评分值 $userId = $_SESSION['user_id']; $rating = $_POST['rating']; // 将评分插入到数据库中 $query = "INSERT INTO ratings (question_id, user_id, rating) VALUES ('$questionId', '$userId', '$rating')"; // 执行插入操作 if ($result) { // 评分成功,刷新页面或跳转回问题详情页 } else { // 评分失败,显示错误信息 } } ?> <!-- 评分组件 --> <form action="" method="POST"> <input type="hidden" name="rating" value="1"> <button type="submit">赞同</button> </form> <form action="" method="POST"> <input type="hidden" name="rating" value="-1"> <button type="submit">反对</button> </form>
Afin de permettre aux utilisateurs de mieux parcourir et rechercher les questions, nous devons trier les questions selon certaines règles. Les règles de tri courantes incluent le tri par heure, popularité, valeur de note, etc. Ici, nous utilisons la valeur de note comme règle de tri.
<?php // 查询问题和评分表格,并按评分值降序排列 $query = "SELECT q.id, q.title, q.content, AVG(r.rating) AS average_rating FROM questions q LEFT JOIN ratings r ON q.id = r.question_id GROUP BY q.id ORDER BY average_rating DESC"; // 执行查询操作 while ($row = mysqli_fetch_assoc($result)) { // 显示问题列表 echo '<h3>' . $row['title'] . '</h3>'; echo '<p>' . $row['content'] . '</p>'; echo '<p>评分:' . $row['average_rating'] . '</p>'; } ?>
Avec l'exemple de code ci-dessus, nous montrons comment utiliser PHP pour développer des fonctions de notation et de tri des questions dans un site Web de questions et réponses de connaissances. Grâce à la fonction d'évaluation, les utilisateurs peuvent évaluer les questions et fournir des références aux autres utilisateurs. Grâce à la fonction de tri, les utilisateurs peuvent parcourir et rechercher des questions en fonction de leur note et trouver rapidement des réponses de haute qualité. Bien entendu, des questions telles que la sécurité et l’optimisation des performances doivent également être prises en compte dans le développement réel. J'espère que cet article sera utile aux développeurs PHP pour développer des fonctions de notation et de tri des questions dans les sites Web de questions et réponses de connaissances.
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!