Verwenden Sie PHP, um Fragen-Antwort-Akzeptanz- und Empfehlungsfunktionen auf einer Wissens-Frage-und-Antwort-Website zu entwickeln.

PHPz
Freigeben: 2023-07-02 10:56:01
Original
1036 Leute haben es durchsucht

Verwenden Sie PHP, um Fragen-Antwort-Akzeptanz- und Empfehlungsfunktionen in Wissens-Q&A-Websites zu entwickeln.

Auf Wissens-Q&A-Websites stellen Benutzer Fragen und andere Benutzer geben Antworten. Es kommt häufig vor, dass eine oder mehrere der Mehrfachantworten vom Fragesteller oder anderen Nutzern als die beste Antwort erkannt werden. Um die Antworten auf Fragen besser anzeigen und verwalten zu können, stellen wir Ihnen in diesem Artikel vor, wie Sie die Adoptions- und Empfehlungsfunktionen von Fragenantworten mithilfe von PHP entwickeln.

  1. Datenbankdesign

Zuerst müssen wir eine Datenbank entwerfen, um Informationen über Fragen und Antworten zu speichern. Hier erstellen wir drei Tabellen. In der Tabelle

  • questions werden Frageninformationen wie Fragen-ID, Titel, Inhalt, Fragesteller-ID, Fragezeit usw. gespeichert. In der Tabelle 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
);
Nach dem Login kopieren
  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>";
}
?>
Nach dem Login kopieren

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

  1. 采纳答案的处理

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

answers werden Antwortinformationen wie Antwort-ID, Frage-ID, Antwortinhalt, Beantworter-ID, Antwortzeit usw. gespeichert. Die Tabelle

accepted_answers wird zum Speichern akzeptierter Antwortinformationen verwendet, einschließlich der Fragen-ID und der akzeptierten Antwort-ID.

Das Folgende ist ein Beispiel für die Datenbankstruktur:

<?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);
?>
Nach dem Login kopieren
    Entwicklung der Fragenseite🎜🎜🎜Auf der Seite mit den Fragendetails müssen wir den Titel, den Inhalt und die zugehörigen Antworten anzeigen der Frage. Für die aktuelle Frage müssen wir auch die akzeptierte Antwort anzeigen (falls vorhanden). 🎜🎜Zuerst müssen wir die Probleminformationen abrufen und auf der Seite anzeigen. Wir können das folgende Codebeispiel verwenden: 🎜rrreee🎜Im obigen Code rufen wir zunächst die Probleminformationen ab und zeigen sie auf der Seite an. Rufen Sie dann die Antworten zur Frage ab und zeigen Sie sie einzeln an. Für jede Antwort prüfen wir, ob sie angenommen wurde. Wenn die Antwort akzeptiert wird, wird die Markierung „Akzeptiert“ angezeigt. Wenn Sie auf die Markierung klicken, wird accept-answer.php aufgerufen, um die Antwort zu akzeptieren. 🎜
      🎜Verarbeitung akzeptierter Antworten🎜🎜🎜In der Datei accept-answer.php müssen wir die Antwortannahmeanfrage verarbeiten und accepted_answers aktualisieren Tisch. 🎜🎜Hier ist ein Codebeispiel, das eine akzeptierte Antwortanfrage verarbeitet: 🎜rrreee🎜Im obigen Code erhalten wir zunächst die IDs der Frage und Antwort. Aktualisieren Sie dann die Antwort-ID auf die akzeptierte Antwort, indem Sie eine SQL-Anweisung ausführen. Abschließend leiten wir zur Problemdetailseite weiter und aktualisieren die Seite, um den neuesten Einführungsstatus anzuzeigen. 🎜🎜Durch die oben genannten Schritte haben wir die Funktion zur Übernahme und Empfehlung von Antworten auf Fragen in der Wissensfrage- und Antwort-Website erfolgreich implementiert. Benutzer können Antworten, die ihnen gefallen, auf der Seite mit den Fragendetails übernehmen und mit dieser Funktion die Qualität von Fragen und Antworten verbessern. Dies hilft Benutzern, Wissen besser zu erfassen und zu teilen. 🎜

Das obige ist der detaillierte Inhalt vonVerwenden Sie PHP, um Fragen-Antwort-Akzeptanz- und Empfehlungsfunktionen auf einer Wissens-Frage-und-Antwort-Website zu entwickeln.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!