Heim > Artikel > Backend-Entwicklung > Verwenden Sie PHP, um Fragen-Antwort-Akzeptanz- und Empfehlungsfunktionen auf einer Wissens-Frage-und-Antwort-Website zu entwickeln.
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.
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 );
在问题详情页面上,我们需要显示问题的标题、内容以及相关答案。对于当前问题,我们还需要显示被采纳的答案(如果有的话)。
首先,我们要获取问题的信息并显示在页面上。我们可以使用以下代码示例:
<?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>"; } ?>
以上代码中,我们首先获取问题的信息并展示在页面上。然后,获取问题相关的答案并逐个显示。对于每个答案,我们检查其是否被采纳。如被采纳,则显示“已采纳”标志;反之,则显示一个标签,点击该标签将调用 accept-answer.php
进行答案的采纳。
在 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); ?>
accept-answer.php
aufgerufen, um die Antwort zu akzeptieren. 🎜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!