在当今的数字化时代,我们经常需要在线平台来分享和讨论信息,这些平台通常包括论坛、博客、社交媒体等,在这些平台上,用户可以通过发布评论来表达他们的观点和想法,实现评论功能是任何在线平台的重要组成部分,本文将介绍如何使用PHP来实现评论功能。
我们需要创建一个数据库来存储用户的评论,这个数据库应该包含一个表,用于存储评论的内容、作者、发布时间等信息,以下是创建数据库和表的SQL代码:
SQL
CREATE DATABASE IF NOT EXISTS comments;
USE comments;
CREATE TABLE IF NOT EXISTS posts (
id INT AUTO_INCREMENT PRIMARY KEY,
content TEXT NOT NULL,
author VARCHAR(255) NOT NULL,
time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
我们需要创建一个HTML表单,让用户可以输入他们的评论,以下是一个简单的HTML表单示例:
Markup
<form action="submit_comment.php" method="post">
<label for="content">Comment:</label><br>
<textarea id="content" name="content" rows="4" cols="50"></textarea><br>
<input type="submit" value="Submit">
</form>
当用户提交表单时,数据将被发送到"submit_comment.php"文件进行处理,以下是"submit_comment.php"文件的示例代码:
PHP
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "comments";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$author = $_POST['author'];
$content = $_POST['content'];
$sql = "INSERT INTO posts (content, author) VALUES ('$content', '$author')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
以上代码首先连接到数据库,然后从表单中获取用户的姓名和评论内容,然后将这些信息插入到数据库中,如果插入成功,页面将显示一条消息表示评论已成功提交,如果插入失败,页面将显示错误信息。
我们需要在网页上显示用户的评论,以下是一个简单的PHP代码示例,用于从数据库中获取并显示评论:
PHP
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "comments";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT content, author FROM posts ORDER BY time DESC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出每行数据
while($row = $result->fetch_assoc()) {
echo "<p><b>" . $row["author"]. "</b> says: " . $row["content"]. "</p>";
}
} else {
echo "0 results";
}
$conn->close();
?>
以上代码首先连接到数据库,然后执行一个SQL查询,从数据库中获取所有的评论,并按照时间降序排序,它遍历查询结果,并为每个评论输出一个段落,如果查询结果为空,它将输出"0 results"。
还没有评论,来说两句吧...