Rumah pembangunan bahagian belakang tutorial php Gunakan PHP untuk membangunkan fungsi penerimaan jawapan soalan dan pengesyoran dalam tapak web soalan dan jawapan pengetahuan.

Gunakan PHP untuk membangunkan fungsi penerimaan jawapan soalan dan pengesyoran dalam tapak web soalan dan jawapan pengetahuan.

Jul 02, 2023 am 10:52 AM
php Trivia Mengguna pakai cadangan

Gunakan PHP untuk membangunkan fungsi penerimaan jawapan dan pengesyoran dalam laman web Soal Jawab pengetahuan

Dalam laman web Soal Jawab pengetahuan, pengguna bertanya soalan dan pengguna lain memberikan jawapan. Selalunya berlaku bahawa satu atau lebih daripada berbilang jawapan diiktiraf sebagai jawapan terbaik oleh penyoal atau pengguna lain. Oleh itu, untuk memaparkan dan mengurus jawapan kepada soalan dengan lebih baik, dalam artikel ini kami akan memperkenalkan cara membangunkan fungsi penerimaan dan cadangan jawapan soalan menggunakan PHP.

  1. Reka Bentuk Pangkalan Data

Pertama, kita perlu mereka bentuk pangkalan data untuk menyimpan maklumat tentang soalan dan jawapan. Di sini kita mencipta tiga jadual.

  • Jadualsoalan menyimpan maklumat soalan, seperti ID soalan, tajuk, kandungan, ID penyoal, masa soalan, dsb. questions 表存储问题信息,例如问题 ID、标题、内容、提问者 ID、提问时间等。
  • answers 表存储答案信息,例如答案 ID、问题 ID、回答内容、回答者 ID、回答时间等。
  • accepted_answers 表用于存储被采纳的答案信息,其中包含问题 ID、被采纳答案 ID。

以下是数据库结构的示例:

CREATE TABLE questions (
    id INT PRIMARY KEY AUTO_INCREMENT,
    title VARCHAR(255),
    content TEXT,
    owner_id INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE answers (
    id INT PRIMARY KEY AUTO_INCREMENT,
    question_id INT,
    content TEXT,
    owner_id INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE accepted_answers (
    question_id INT PRIMARY KEY,
    answer_id INT
);
Salin selepas log masuk
  1. 问题页面开发

在问题详情页面上,我们需要显示问题的标题、内容以及相关答案。对于当前问题,我们还需要显示被采纳的答案(如果有的话)。

首先,我们要获取问题的信息并显示在页面上。我们可以使用以下代码示例:

<?php
// 获取问题 ID
$questionId = $_GET['id'];

// 获取问题信息
$questionQuery = "SELECT * FROM questions WHERE id = :id";
$questionStmt = $pdo->prepare($questionQuery);
$questionStmt->bindParam(':id', $questionId, PDO::PARAM_INT);
$questionStmt->execute();
$question = $questionStmt->fetch(PDO::FETCH_ASSOC);

// 显示问题标题和内容
echo "<h1>" . $question['title'] . "</h1>";
echo "<p>" . $question['content'] . "</p>";

// 获取问题的回答信息
$answersQuery = "SELECT * FROM answers WHERE question_id = :question_id";
$answersStmt = $pdo->prepare($answersQuery);
$answersStmt->bindParam(':question_id', $questionId, PDO::PARAM_INT);
$answersStmt->execute();
$answers = $answersStmt->fetchAll(PDO::FETCH_ASSOC);

// 显示回答列表
foreach ($answers as $answer) {
    echo "<div>";
    echo "<p>" . $answer['content'] . "</p>";

    // 检查答案是否被采纳
    if ($answer['id'] === $question['accepted_answer_id']) {
        echo "<span>已采纳</span>";
    } else {
        // 显示采纳按钮
        echo "<a href='accept-answer.php?question=" . $questionId . "&answer=" . $answer['id'] . "'>采纳该答案</a>";
    }

    echo "</div>";
}
?>
Salin selepas log masuk

以上代码中,我们首先获取问题的信息并展示在页面上。然后,获取问题相关的答案并逐个显示。对于每个答案,我们检查其是否被采纳。如被采纳,则显示“已采纳”标志;反之,则显示一个标签,点击该标签将调用 accept-answer.php 进行答案的采纳。

  1. 采纳答案的处理

accept-answer.php 文件中,我们需要处理答案的采纳请求,并更新 accepted_answers

jawapan jadual menyimpan maklumat jawapan, seperti ID jawapan, ID soalan, kandungan jawapan, ID penjawab, masa menjawab, dsb.

Jadual accepted_answers digunakan untuk menyimpan maklumat jawapan yang diterima, yang termasuk ID soalan dan ID jawapan yang diterima.

Berikut ialah contoh struktur pangkalan data:

<?php
// 获取问题 ID 和答案 ID
$questionId = $_GET['question'];
$answerId = $_GET['answer'];

// 将答案 ID 更新为被采纳
$acceptAnswerQuery = "UPDATE accepted_answers SET answer_id = :answer_id WHERE question_id = :question_id";
$acceptAnswerStmt = $pdo->prepare($acceptAnswerQuery);
$acceptAnswerStmt->bindParam(':answer_id', $answerId, PDO::PARAM_INT);
$acceptAnswerStmt->bindParam(':question_id', $questionId, PDO::PARAM_INT);
$acceptAnswerStmt->execute();

// 返回问题详情页
header("Location: question.php?id=" . $questionId);
?>
Salin selepas log masuk
    Pembangunan halaman soalan🎜🎜🎜Pada halaman butiran soalan, kami perlu memaparkan tajuk, kandungan dan jawapan yang berkaitan daripada soalan itu. Untuk soalan semasa, kami juga perlu menunjukkan jawapan yang diterima (jika ada). 🎜🎜Pertama, kita perlu mendapatkan maklumat masalah dan memaparkannya pada halaman. Kita boleh menggunakan contoh kod berikut: 🎜rrreee🎜Dalam kod di atas, kami mula-mula mendapat maklumat masalah dan memaparkannya pada halaman. Kemudian, dapatkan jawapan yang berkaitan dengan soalan dan paparkan satu persatu. Untuk setiap jawapan, kami menyemak sama ada ia diterima. Jika ia diterima, tanda "Diterima" akan dipaparkan; jika tidak, label akan dipaparkan dengan mengklik label akan memanggil accept-answer.php untuk menerima jawapan. 🎜
      🎜Pemprosesan jawapan yang diterima🎜🎜🎜Dalam fail accept-answer.php, kami perlu memproses permintaan penerimaan jawapan dan mengemas kini accepted_answers Jadual. 🎜🎜Berikut ialah contoh kod yang mengendalikan permintaan jawapan yang diterima: 🎜rrreee🎜Dalam kod di atas, kami mula-mula mendapat ID soalan dan jawapan. Kemudian, kemas kini ID jawapan kepada jawapan yang diterima dengan melaksanakan pernyataan SQL. Akhir sekali, kami mengubah hala ke halaman butiran isu dan memuat semula halaman untuk menunjukkan status penerimaan terkini. 🎜🎜Melalui langkah di atas, kami telah berjaya melaksanakan fungsi menerima pakai dan mengesyorkan jawapan kepada soalan dalam laman web soal jawab ilmu. Pengguna boleh menerima pakai jawapan yang mereka luluskan dalam halaman butiran soalan dan meningkatkan kualiti soalan dan jawapan melalui ciri ini. Ini membantu pengguna menangkap dan berkongsi pengetahuan dengan lebih baik. 🎜

Atas ialah kandungan terperinci Gunakan PHP untuk membangunkan fungsi penerimaan jawapan soalan dan pengesyoran dalam tapak web soalan dan jawapan pengetahuan.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

CakePHP Bekerja dengan Pangkalan Data CakePHP Bekerja dengan Pangkalan Data Sep 10, 2024 pm 05:25 PM

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Pembalakan CakePHP Pembalakan CakePHP Sep 10, 2024 pm 05:26 PM

Log masuk CakePHP adalah tugas yang sangat mudah. Anda hanya perlu menggunakan satu fungsi. Anda boleh log ralat, pengecualian, aktiviti pengguna, tindakan yang diambil oleh pengguna, untuk sebarang proses latar belakang seperti cronjob. Mengelog data dalam CakePHP adalah mudah. Fungsi log() disediakan

See all articles