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 -antwort-Website.

PHPz
Freigeben: 2023-07-01 20:02:02
Original
937 Leute haben es durchsucht
<p>PHP implementiert die Fragendiskussions- und Bewertungsfunktionen in der Wissensfrage- und -antworten-Website.

<p>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.

  1. Datenbankdesign
<p>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`)
);
Nach dem Login kopieren
<p>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和评价分数等)。
  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();
?>
Nach dem Login kopieren
<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();
?>
Nach dem Login kopieren
<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>
Nach dem Login kopieren
<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");
?>
Nach dem Login kopieren
<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");
?>
Nach dem Login kopieren
<p>上述代码首先获取用户提交的评价数据,并连接到数据库。然后,通过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>

    <p>Fragen und Antworten anzeigen

  • Als nächstes müssen wir Code mit PHP schreiben, um Fragen und Antworten anzuzeigen. Zuerst können wir eine index.php-Datei erstellen, um eine Liste aller Fragen anzuzeigen. Der Code lautet wie folgt:
  • rrreee
  • Der obige Code stellt zunächst eine Verbindung zur Datenbank her und ruft die Daten aller Fragen durch Abfrage ab. Geben Sie als Nächstes die Liste der Fragen in einer Schleife aus und erstellen Sie einen Link mit der Fragen-ID für jede Frage. Nachdem Sie auf den Link geklickt haben, springt der Benutzer zur Seite question.php, um die Fragen und Antworten anzuzeigen. Einzelheiten.
Dann können wir eine question.php-Datei erstellen, um die Details der Frage und Antwort anzuzeigen. Der Code lautet wie folgt: <p>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 Tags <h1> und <p> und der Inhalt der Antwort verwendet <h2> und <p>-Tag. 🎜
    🎜Antwort- und Bewertungsfunktionen hinzufügen🎜🎜🎜Als nächstes müssen wir Antwort- und Bewertungsfunktionen hinzufügen. Fügen Sie zunächst unter der Antwort auf der Seite 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!

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