Maison >développement back-end >tutoriel php >Développement d'une fonctionnalité de notation et de tri des questions dans un site Web de quiz en utilisant PHP.

Développement d'une fonctionnalité de notation et de tri des questions dans un site Web de quiz en utilisant PHP.

PHPz
PHPzoriginal
2023-07-01 22:46:351446parcourir

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.

  1. Conception de base de données

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
);
  1. Fonction d'évaluation des questions

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>
  1. Fonction de tri des questions

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!

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