PHP melaksanakan fungsi perbincangan dan penilaian soalan dalam laman web soalan dan jawapan pengetahuan.

PHPz
Lepaskan: 2023-07-01 20:02:02
asal
862 orang telah melayarinya
<p>PHP melaksanakan fungsi perbincangan dan penilaian soalan dalam laman web soal jawab ilmu

<p>Dengan kemunculan era maklumat, laman web soal jawab ilmu semakin mendapat perhatian dan nikmat daripada orang ramai. Laman web ini bukan sahaja menyediakan pengguna dengan platform untuk komunikasi dan perkongsian pengetahuan bersama, tetapi juga membolehkan pengguna mendapatkan maklumat berguna dengan lebih baik melalui fungsi perbincangan dan penilaian. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan perbincangan soalan dan fungsi penilaian dalam tapak web Soal Jawab pengetahuan.

  1. Reka bentuk pangkalan data
<p>Pertama sekali, kita perlu mereka bentuk pangkalan data untuk menyimpan data seperti soalan, jawapan dan komen daripada pengguna. Berikut ialah contoh reka bentuk pangkalan data yang mudah:

CREATE TABLE `questions` (
  `id` INT(11) UNSIGNED AUTO_INCREMENT,
  `title` VARCHAR(255) NOT NULL,
  `content` TEXT NOT NULL,
  `user_id` INT(11) UNSIGNED NOT NULL,
  `created_at` DATETIME NOT NULL,
  `updated_at` DATETIME,
  PRIMARY KEY (`id`)
);

CREATE TABLE `answers` (
  `id` INT(11) UNSIGNED AUTO_INCREMENT,
  `question_id` INT(11) UNSIGNED NOT NULL,
  `content` TEXT NOT NULL,
  `user_id` INT(11) UNSIGNED NOT NULL,
  `created_at` DATETIME NOT NULL,
  `updated_at` DATETIME,
  PRIMARY KEY (`id`)
);

CREATE TABLE `ratings` (
  `id` INT(11) UNSIGNED AUTO_INCREMENT,
  `answer_id` INT(11) UNSIGNED NOT NULL,
  `user_id` INT(11) UNSIGNED NOT NULL,
  `rating` INT(11) NOT NULL,
  PRIMARY KEY (`id`)
);
Salin selepas log masuk
<p>Antaranya, jadual

  • soalan digunakan untuk menyimpan maklumat soalan (termasuk tajuk, kandungan, ID penyoal, masa penciptaan dan masa kemas kini, dsb. .); questions 表用来存储问题的信息(包括标题、内容、提问者ID、创建时间和更新时间等);
  • answers 表用来存储回答的信息(包括问题ID、内容、回答者ID、创建时间和更新时间等);
  • ratings 表用来存储回答的评价信息(包括回答ID、评价者ID和评价分数等)。
  1. 显示问题和回答
<p>接下来,我们需要使用PHP编写代码来显示问题和回答。首先,我们可以创建一个index.php文件,用来显示所有问题列表。代码如下:

<?php
// index.php

// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database_name');
if ($conn->connect_errno) {
    die('连接数据库失败');
}

// 获取问题列表
$result = $conn->query("SELECT * FROM questions");
if (!$result) {
    die('查询数据失败');
}

// 显示问题列表
while ($row = $result->fetch_assoc()) {
    echo '<a href="question.php?id=' . $row['id'] . '">' . $row['title'] . '</a>';
    echo '<br>';
}

// 关闭数据库连接
$conn->close();
?>
Salin selepas log masuk
<p>上述代码首先连接到数据库,并通过查询获取所有问题的数据。接下来,通过循环输出问题列表,并为每个问题创建一个带有问题ID的链接,点击链接后用户将跳转到question.php页面,用来显示问题和回答的详细内容。

<p>然后,我们可以创建一个question.php文件,用来显示问题和回答的详细内容。代码如下:

<?php
// question.php

// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database_name');
if ($conn->connect_errno) {
    die('连接数据库失败');
}

// 获取问题ID
$question_id = $_GET['id'];

// 获取问题信息
$result = $conn->query("SELECT * FROM questions WHERE id = $question_id");
if (!$result) {
    die('查询数据失败');
}
$question = $result->fetch_assoc();

// 获取回答列表
$result = $conn->query("SELECT * FROM answers WHERE question_id = $question_id");
if (!$result) {
    die('查询数据失败');
}

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

while ($row = $result->fetch_assoc()) {
    echo '<h2>回答:</h2>';
    echo '<p>' . $row['content'] . '</p>';
}

// 关闭数据库连接
$conn->close();
?>
Salin selepas log masuk
<p>上述代码首先连接到数据库,并根据问题ID获取问题和回答的数据。然后,通过输出HTML来显示问题和回答的内容。其中,问题的标题和内容使用<h1><p>标签,回答的内容使用<h2><p>标签。

  1. 添加回答和评价功能
<p>接下来,我们需要添加回答和评价功能。首先,在question.php页面的回答下方添加一个表单,用来让用户输入回答的内容。代码如下:

<h2>我要回答:</h2>
<form action="answer.php" method="POST">
    <textarea name="content" rows="5" cols="50"></textarea><br>
    <input type="hidden" name="question_id" value="<?php echo $question_id; ?>">
    <input type="submit" value="提交回答">
</form>
Salin selepas log masuk
<p>上述代码创建了一个POST方法的表单,通过textarea标签让用户输入回答的内容。同时,通过隐藏域传递问题ID,以便在后续的处理中能够知道回答对应的问题。

<p>然后,我们创建一个answer.php文件,用来处理用户提交的回答。代码如下:

<?php
// answer.php

// 获取回答数据
$question_id = $_POST['question_id'];
$content = $_POST['content'];

// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database_name');
if ($conn->connect_errno) {
    die('连接数据库失败');
}

// 插入回答数据
$stmt = $conn->prepare("INSERT INTO answers (question_id, content) VALUES (?, ?)");
$stmt->bind_param("is", $question_id, $content);
$result = $stmt->execute();
if (!$result) {
    die('插入数据失败');
}

// 关闭数据库连接
$conn->close();

// 回到问题页面
header("Location: question.php?id=$question_id");
?>
Salin selepas log masuk
<p>上述代码首先获取用户提交的回答数据,并连接到数据库。然后,通过prepare()方法和bind_param()方法来绑定数据并插入到数据库中。最后,通过header()函数将用户重定向回到问题页面。

<p>同样地,我们可以创建一个rate.php文件,用来处理用户对回答的评价。代码如下:

<?php
// rate.php

// 获取评价数据
$answer_id = $_GET['answer_id'];
$rating = $_GET['rating'];

// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database_name');
if ($conn->connect_errno) {
    die('连接数据库失败');
}

// 更新评价数据
$stmt = $conn->prepare("INSERT INTO ratings (answer_id, rating) VALUES (?, ?)");
$stmt->bind_param("ii", $answer_id, $rating);
$result = $stmt->execute();
if (!$result) {
    die('更新数据失败');
}

// 关闭数据库连接
$conn->close();

// 回到问题页面
$question_id = $_GET['question_id'];
header("Location: question.php?id=$question_id");
?>
Salin selepas log masuk
<p>上述代码首先获取用户提交的评价数据,并连接到数据库。然后,通过prepare()方法和bind_param()方法来绑定数据并更新到数据库中。最后,通过header()

jawapan jadual digunakan untuk menyimpan maklumat jawapan (termasuk ID soalan, kandungan, ID responden, masa penciptaan dan masa kemas kini, dll.); jadual digunakan untuk menyimpan maklumat penilaian jawapan (termasuk ID jawapan, ID penilai, skor penilaian, dsb.). <p>

    <p>Paparkan soalan dan jawapan

    <p>

    Seterusnya, kita perlu menulis kod menggunakan PHP untuk memaparkan soalan dan jawapan. Pertama, kita boleh mencipta fail index.php untuk memaparkan senarai semua soalan. Kodnya adalah seperti berikut:
    rrreee
  • Kod di atas mula-mula bersambung ke pangkalan data dan mendapatkan data semua soalan melalui pertanyaan. Seterusnya, keluarkan senarai soalan dengan menggelung dan membuat pautan dengan ID soalan untuk setiap soalan Selepas mengklik pautan, pengguna akan melompat ke halaman question.php untuk memaparkan soalan dan jawapan. Butiran.
  • Kemudian, kita boleh mencipta fail question.php untuk memaparkan butiran soalan dan jawapan. Kod adalah seperti berikut:
  • rrreee
Kod di atas mula-mula disambungkan ke pangkalan data dan mendapatkan data soalan dan jawapan berdasarkan ID soalan. Kemudian, paparkan kandungan soalan dan jawapan dengan mengeluarkan HTML. Antaranya, tajuk dan kandungan soalan menggunakan tag <h1> dan <p>, dan kandungan jawapan menggunakan <h2> teg dan <p>. <p>

    Tambah fungsi jawapan dan penilaian🎜🎜🎜Seterusnya, kita perlu menambah fungsi jawapan dan penilaian. Mula-mula, tambahkan borang di bawah jawapan pada halaman question.php untuk membolehkan pengguna memasukkan kandungan jawapan. Kodnya adalah seperti berikut: 🎜rrreee🎜Kod di atas mencipta borang dengan kaedah POST, membenarkan pengguna memasukkan kandungan jawapan melalui tag textarea. Pada masa yang sama, ID soalan dihantar melalui medan tersembunyi supaya soalan yang sepadan boleh dijawab dalam pemprosesan seterusnya. 🎜🎜Kemudian, kami mencipta fail answer.php untuk memproses jawapan yang diserahkan oleh pengguna. Kodnya adalah seperti berikut: 🎜rrreee🎜Kod di atas terlebih dahulu mendapatkan data jawapan yang dihantar oleh pengguna dan disambungkan ke pangkalan data. Kemudian, ikat data dan masukkan ke dalam pangkalan data melalui kaedah prepare() dan kaedah bind_param(). Akhir sekali, pengguna dialihkan semula ke halaman soalan melalui fungsi header(). 🎜🎜Begitu juga, kami boleh mencipta fail rate.php untuk memproses penilaian pengguna terhadap jawapan. Kod adalah seperti berikut: 🎜rrreee🎜Kod di atas terlebih dahulu mendapatkan data penilaian yang dihantar oleh pengguna dan disambungkan ke pangkalan data. Kemudian, ikat data dan kemas kini kepada pangkalan data melalui kaedah prepare() dan kaedah bind_param(). Akhir sekali, pengguna dialihkan semula ke halaman soalan melalui fungsi header(). 🎜🎜Melalui langkah di atas, kami telah berjaya melaksanakan fungsi perbincangan dan penilaian soalan dalam laman web soal jawab ilmu. Pengguna bukan sahaja boleh bertanya dan menjawab soalan, tetapi juga menilai jawapan. Fungsi sedemikian bukan sahaja dapat meningkatkan ketepatan dan kredibiliti maklumat, tetapi juga membolehkan pengguna memperoleh pengetahuan dan maklumat yang berguna dengan lebih baik. 🎜🎜Perlu diingatkan bahawa kod dalam contoh di atas hanyalah contoh mudah Dalam aplikasi sebenar, pengesahan data, pengesahan pengguna dan kawalan kebenaran juga diperlukan untuk memastikan keselamatan dan kebolehpercayaan sistem. 🎜🎜Bahan rujukan: 🎜🎜🎜Dokumentasi rasmi PHP: https://www.php.net/docs.php 🎜🎜Tapak web rasmi MySQL: https://www.mysql.com/🎜🎜🎜Semoga artikel ini dapat membantu kepada anda Terima kasih atas bantuan anda, saya doakan anda berjaya dalam proses melaksanakan laman web soal jawab pengetahuan! 🎜

Atas ialah kandungan terperinci PHP melaksanakan fungsi perbincangan dan penilaian soalan dalam laman web soalan dan jawapan pengetahuan.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!