Heim >Backend-Entwicklung >PHP-Tutorial >PHP implementiert die Fragendiskussions- und Bewertungsfunktionen in der Wissensfrage- und -antwort-Website.
PHP implementiert die Fragendiskussions- und Bewertungsfunktionen in der Wissensfrage- und -antworten-Website.
Mit dem Aufkommen des Informationszeitalters hat die Wissensfrage- und -antworten-Website bei den Menschen immer mehr Aufmerksamkeit und Gunst erhalten. Diese Websites bieten den Nutzern nicht nur eine Plattform für gegenseitige Kommunikation und Wissensaustausch, sondern ermöglichen den Nutzern auch, durch Diskussions- und Bewertungsfunktionen besser an nützliche Informationen zu gelangen. In diesem Artikel wird erläutert, wie Sie mit PHP Fragendiskussions- und Bewertungsfunktionen in einer Wissens-Q&A-Website implementieren.
Zunächst müssen wir eine Datenbank entwerfen, um Daten wie Fragen, Antworten und Kommentare von Benutzern zu speichern. Das Folgende ist ein einfaches Datenbankdesign-Beispiel:
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`) );
Unter diesen wird die Tabelle
questions
zum Speichern von Frageninformationen (einschließlich Titel, Inhalt, Fragesteller-ID, Erstellungszeit und Aktualisierungszeit usw.) verwendet .); questions
表用来存储问题的信息(包括标题、内容、提问者ID、创建时间和更新时间等);answers
表用来存储回答的信息(包括问题ID、内容、回答者ID、创建时间和更新时间等);ratings
表用来存储回答的评价信息(包括回答ID、评价者ID和评价分数等)。接下来,我们需要使用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(); ?>
上述代码首先连接到数据库,并通过查询获取所有问题的数据。接下来,通过循环输出问题列表,并为每个问题创建一个带有问题ID的链接,点击链接后用户将跳转到question.php
页面,用来显示问题和回答的详细内容。
然后,我们可以创建一个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(); ?>
上述代码首先连接到数据库,并根据问题ID获取问题和回答的数据。然后,通过输出HTML来显示问题和回答的内容。其中,问题的标题和内容使用4a249f0d628e2318394fd9b75b4636b1
和e388a4556c0f65e1904146cc1a846bee
标签,回答的内容使用c1a436a314ed609750bd7c7d319db4da
和e388a4556c0f65e1904146cc1a846bee
标签。
接下来,我们需要添加回答和评价功能。首先,在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>
上述代码创建了一个POST
方法的表单,通过textarea
标签让用户输入回答的内容。同时,通过隐藏域传递问题ID,以便在后续的处理中能够知道回答对应的问题。
然后,我们创建一个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"); ?>
上述代码首先获取用户提交的回答数据,并连接到数据库。然后,通过prepare()
方法和bind_param()
方法来绑定数据并插入到数据库中。最后,通过header()
函数将用户重定向回到问题页面。
同样地,我们可以创建一个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"); ?>
上述代码首先获取用户提交的评价数据,并连接到数据库。然后,通过prepare()
方法和bind_param()
方法来绑定数据并更新到数据库中。最后,通过header()
answers
-Tabelle wird zum Speichern von Antwortinformationen verwendet (einschließlich Frage-ID, Inhalt, Befragten-ID, Erstellungszeit und Aktualisierungszeit usw.);
Bewertungen
In der Tabelle werden die Bewertungsinformationen der Antwort gespeichert (einschließlich Antwort-ID, Bewerter-ID, Bewertungspunktzahl usw.).
Fragen und Antworten anzeigen
index.php
-Datei erstellen, um eine Liste aller Fragen anzuzeigen. Der Code lautet wie folgt: question.php
, um die Fragen und Antworten anzuzeigen. Einzelheiten. question.php
-Datei erstellen, um die Details der Frage und Antwort anzuzeigen. Der Code lautet wie folgt: rrreee
Der obige Code stellt zunächst eine Verbindung zur Datenbank her und ruft die Daten von Fragen und Antworten basierend auf der Fragen-ID ab. Zeigen Sie dann den Inhalt der Frage und Antwort durch Ausgabe von HTML an. Unter anderem verwenden der Titel und der Inhalt der Frage die Tags4a249f0d628e2318394fd9b75b4636b1
und e388a4556c0f65e1904146cc1a846bee
und der Inhalt der Antwort verwendet c1a436a314ed609750bd7c7d319db4da
und e388a4556c0f65e1904146cc1a846bee-Tag. 🎜question.php
ein Formular hinzu, damit Benutzer den Antwortinhalt eingeben können. Der Code lautet wie folgt: 🎜rrreee🎜Der obige Code erstellt ein Formular mit der Methode POST
, das es dem Benutzer ermöglicht, den Antwortinhalt über das Tag textarea
einzugeben. Gleichzeitig wird die Frage-ID durch das versteckte Feld weitergegeben, sodass die entsprechende Frage in der Folgeverarbeitung beantwortet werden kann. 🎜🎜Dann erstellen wir eine answer.php
-Datei, um die von den Benutzern übermittelten Antworten zu verarbeiten. Der Code lautet wie folgt: 🎜rrreee🎜Der obige Code ruft zunächst die vom Benutzer übermittelten Antwortdaten ab und stellt eine Verbindung zur Datenbank her. Binden Sie dann die Daten und fügen Sie sie über die Methode prepare()
und die Methode bind_param()
in die Datenbank ein. Schließlich wird der Benutzer über die Funktion header()
zurück zur Fragenseite weitergeleitet. 🎜🎜Ähnlich können wir eine rate.php
-Datei erstellen, um Benutzerbewertungen von Antworten zu verarbeiten. Der Code lautet wie folgt: 🎜rrreee🎜Der obige Code ruft zunächst die vom Benutzer übermittelten Bewertungsdaten ab und stellt eine Verbindung zur Datenbank her. Binden Sie dann die Daten und aktualisieren Sie sie über die Methode prepare()
und die Methode bind_param()
in der Datenbank. Abschließend wird der Benutzer über die Funktion header()
zurück zur Fragenseite weitergeleitet. 🎜🎜Durch die oben genannten Schritte haben wir die Fragendiskussions- und Bewertungsfunktionen erfolgreich auf der Wissensfrage- und Antwortwebsite implementiert. Nutzer können nicht nur Fragen stellen und beantworten, sondern auch die Antworten bewerten. Solche Funktionen können nicht nur die Genauigkeit und Glaubwürdigkeit von Informationen verbessern, sondern es Benutzern auch ermöglichen, nützliches Wissen und Informationen besser zu erhalten. 🎜🎜Es ist zu beachten, dass es sich bei den Codes in den obigen Beispielen nur um einfache Beispiele handelt. In tatsächlichen Anwendungen sind auch Datenüberprüfung, Benutzerauthentifizierung und Berechtigungskontrolle erforderlich, um die Sicherheit und Zuverlässigkeit des Systems zu gewährleisten. 🎜🎜Referenzmaterialien: 🎜🎜🎜Offizielle PHP-Dokumentation: https://www.php.net/docs.php 🎜🎜Offizielle MySQL-Website: https://www.mysql.com/🎜🎜🎜Ich hoffe, dieser Artikel kann hilfreich sein Vielen Dank für Ihre Hilfe. Ich wünsche Ihnen viel Erfolg bei der Implementierung einer Wissens-Frage-und-Antwort-Website! 🎜Das obige ist der detaillierte Inhalt vonPHP implementiert die Fragendiskussions- und Bewertungsfunktionen in der Wissensfrage- und -antwort-Website.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!