Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Membangunkan fungsi pemarkahan dan pengisihan soalan dalam laman web trivia menggunakan PHP.

Membangunkan fungsi pemarkahan dan pengisihan soalan dalam laman web trivia menggunakan PHP.

PHPz
PHPzasal
2023-07-01 22:46:351404semak imbas

Gunakan PHP untuk membangunkan fungsi pemarkahan dan pengisihan soalan dalam laman web Soal Jawab pengetahuan

Dengan perkembangan Internet, laman web Soal Jawab pengetahuan kini telah menjadi salah satu saluran penting untuk orang ramai memperoleh pengetahuan dan menyelesaikan masalah. Laman web ini memberi pengguna kebebasan untuk bertanya, menjawab dan mengulas, tetapi cara menjaringkan dan memberi kedudukan soalan menjadi isu utama. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan fungsi pemarkahan dan pengisihan soalan dalam tapak web soal jawab pengetahuan.

  1. Reka Bentuk Pangkalan Data

Pertama, kita perlu mencipta jadual yang berkaitan dalam pangkalan data untuk menyimpan soalan dan data pemarkahan. Katakan kita mempunyai dua jadual, satu ialah jadual soalan, yang mengandungi medan seperti ID soalan, tajuk dan kandungan, dan satu lagi ialah jadual penilaian, yang mengandungi medan seperti ID penilaian, ID soalan, ID pengguna dan nilai penilaian. .

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. Fungsi penilaian soalan

Dalam laman web soal jawab pengetahuan, pengguna boleh menilai soalan untuk menyatakan kepuasan mereka dengan soalan. Kami boleh menambah komponen penilaian di bahagian bawah halaman butiran soalan dan pengguna boleh menilai soalan dengan mengklik butang.

<?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. Fungsi pengisihan soalan

Untuk membolehkan pengguna menyemak imbas dan mencari soalan dengan lebih baik, kami perlu mengisih soalan mengikut peraturan tertentu. Peraturan pengisihan biasa termasuk pengisihan mengikut masa, populariti, nilai penilaian, dsb. Di sini, kami menggunakan nilai rating sebagai peraturan pengisihan.

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

Dengan contoh kod di atas, kami menunjukkan cara menggunakan PHP untuk membangunkan fungsi pemarkahan dan pengisihan soalan dalam tapak web soal jawab pengetahuan. Menggunakan fungsi penilaian, pengguna boleh menilai soalan dan menyediakan rujukan untuk pengguna lain. Menggunakan fungsi pengisihan, pengguna boleh menyemak imbas dan mencari soalan berdasarkan penilaian mereka dan mencari jawapan berkualiti tinggi dengan cepat. Sudah tentu, isu seperti keselamatan dan pengoptimuman prestasi juga perlu diambil kira dalam pembangunan sebenar. Saya harap artikel ini akan membantu pembangun PHP dalam membangunkan fungsi pemarkahan dan pengisihan soalan dalam laman web Soal Jawab pengetahuan.

Atas ialah kandungan terperinci Membangunkan fungsi pemarkahan dan pengisihan soalan dalam laman web trivia menggunakan PHP.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn