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`) );
questions
zum Speichern von Frageninformationen (einschließlich Titel, Inhalt, Fragesteller-ID, Erstellungszeit und Aktualisierungszeit usw.) verwendet .); questions
表用来存储问题的信息(包括标题、内容、提问者ID、创建时间和更新时间等);answers
表用来存储回答的信息(包括问题ID、内容、回答者ID、创建时间和更新时间等);ratings
表用来存储回答的评价信息(包括回答ID、评价者ID和评价分数等)。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(); ?>
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(); ?>
<h1>
和<p>
标签,回答的内容使用<h2>
和<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>
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"); ?>
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"); ?>
prepare()
方法和bind_param()
方法来绑定数据并更新到数据库中。最后,通过header()
answers
-Tabelle wird zum Speichern von Antwortinformationen verwendet (einschließlich Frage-ID, Inhalt, Befragten-ID, Erstellungszeit und Aktualisierungszeit usw.); <p>
Bewertungen
In der Tabelle werden die Bewertungsinformationen der Antwort gespeichert (einschließlich Antwort-ID, Bewerter-ID, Bewertungspunktzahl usw.). <p>
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: <p>rrreeeDer 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 Tags <h1>
und <p>
und der Inhalt der Antwort verwendet <h2>
und <p>-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!