ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して雑学 Web サイトで質問の採点と並べ替え機能を開発しました。

PHP を使用して雑学 Web サイトで質問の採点と並べ替え機能を開発しました。

PHPz
PHPzオリジナル
2023-07-01 22:46:351404ブラウズ

PHP を使用してナレッジ Q&A Web サイトの質問のスコアリングおよび並べ替え機能を開発する

インターネットの発展に伴い、ナレッジ Q&A Web サイトは人々が知識を取得し、問題を解決するための重要なチャネルの 1 つになりました。 。これらの Web サイトでは、ユーザーは自由に質問、回答、コメントすることができますが、質問をどのように採点してランク付けするかが重要な問題になります。この記事では、PHP を使用して、知識に関する質問と回答の Web サイトで質問の採点機能と並べ替え機能を開発する方法を紹介します。

  1. データベース設計

まず、質問と採点データを保存するための関連テーブルをデータベースに作成する必要があります。 2 つのテーブルがあるとします。1 つは質問 ID、タイトル、コンテンツなどのフィールドを含む質問テーブルで、もう 1 つは評価 ID、質問 ID、ユーザー ID、評価値などのフィールドを含む評価テーブルです。 。

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. 質問評価機能

知識の質問と回答の Web サイトでは、ユーザーは質問に対する満足度を示すために質問を評価できます。質問の詳細ページの下部に評価コンポーネントを追加し、ユーザーはボタンをクリックして質問を評価できます。

<?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. 質問の並べ替え機能

ユーザーが質問をより適切に閲覧および検索できるようにするには、特定のルールに従って質問を並べ替える必要があります。一般的な並べ替えルールには、時間、人気、評価値などによる並べ替えが含まれます。ここでは、評価値を並べ替えルールとして使用します。

<?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>';
}
?>

上記のコード例を通じて、PHP を使用してナレッジ Q&A Web サイトで質問のスコアリングおよび並べ替え機能を開発する方法を示します。評価機能を使用すると、ユーザーは質問を評価し、他のユーザーに参考資料を提供できます。並べ替え機能を使用すると、ユーザーは評価に基づいて質問を参照および検索し、質の高い回答をすばやく見つけることができます。もちろん、実際の開発ではセキュリティやパフォーマンスの最適化などの問題も考慮する必要があります。この記事が、PHP 開発者がナレッジ Q&A Web サイトで質問のスコアリングおよび並べ替え機能を開発する際に役立つことを願っています。

以上がPHP を使用して雑学 Web サイトで質問の採点と並べ替え機能を開発しました。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。