MySQL中的HTML与PHP的分离以及评论类的实现

MySQL中的HTML与PHP的分离以及评论类的实现

在本文中,我们将介绍MySQL中HTML与PHP的分离以及如何在PHP中实现评论类功能。

阅读更多:MySQL 教程

MySQL中HTML与PHP的分离

HTML和PHP是在Web开发过程中最常用的两个技术。HTML用于前端展示,而PHP用于与后端数据库交互。将HTML和PHP分离的好处在于方便管理和防止代码混乱。

我们可以通过include或require函数将HTML文件和PHP文件进行分离。例如,我们有一个名为“index.php”的文件,我们可以将HTML文件“header.html”和“footer.html”分别包含到“index.php”中:

include "header.html";
// index页面的主要内容
include "footer.html";

这些HTML文件可以包含样式和脚本等文件,使代码更加有条理。

添加评论类

现在,让我们考虑如何在PHP中实现评论类。我们将使用MySQL作为后端数据库,因为它是最常见的数据库之一,并且易于使用。

创建数据库

首先,我们需要创建数据库以存储留言和评论。我们将创建一个名为“comments_db”的数据库,并在其中创建名为“comments”的表来存储评论。该表将包含以下字段:

字段名 类型 说明
id int(11) 自增评论ID
name varchar(50) 评论者姓名
email varchar(50) 评论者邮箱
message text 评论内容
parent_id int(11) 父评论ID
created datetime 评论发布时间
updated datetime 评论修改时间(可选)

添加留言和评论

添加留言和评论的表单应该包括以下字段:姓名、电子邮件、评论内容和父评论ID。

当用户提交评论时,我们需要将评论信息插入到“comments”表中。如果用户正在回复另一个评论,则应将其父评论ID插入相应字段。

<?php
if (_SERVER['REQUEST_METHOD'] == 'POST') {name = _POST['name'];email = _POST['email'];message = _POST['message'];parent_id = _POST['parent_id'];

    // 连接到数据库conn = mysqli_connect('localhost', 'username', 'password', 'comments_db');
    // 检查连接是否成功
    if (!conn) {
        die('连接数据库失败: ' . mysqli_connect_error());
    }

    // 执行插入语句sql = "INSERT INTO comments (name, email, message, parent_id) VALUES ('name', 'email', 'message',parent_id)";
    if (mysqli_query(conn,sql)) {
        echo '评论已发布';
    } else {
        echo '评论发布失败: ' . mysqli_error(conn);
    }

    // 关闭数据库连接
    mysqli_close(conn);
}
?>

显示留言和评论

我们可以使用以下查询语句从数据库中检索评论数据:

SELECT * FROM comments WHERE parent_id IS NULL

在这个例子中,我们只选择没有父评论的评论,即留言。我们可以通过在HTML中嵌套PHP代码来轻松地显示这些评论。例如:

<?php
// 连接到数据库
conn = mysqli_connect('localhost', 'username', 'password', 'comments_db');
// 检查连接是否成功
if (!conn) {
    die('连接数据库失败: ' . mysqli_connect_error());
}

// 查询留言数据
result = mysqli_query(conn, "SELECT * FROM comments WHERE parent_id IS NULL");

// 显示每个留言的评论和回复
while (row = mysqli_fetch_assoc(result)) {
    echo "<div class='comment'>";
    echo "<span class='name'>" . row['name'] . "</span>";
    echo "<span class='email'>" .row['email'] . "</span>";
    echo "<span class='message'>" . row['message'] . "</span>";

    // 显示回复parent_id = row['id'];reply_result = mysqli_query(conn, "SELECT * FROM comments WHERE parent_id =parent_id");
    while (reply_row = mysqli_fetch_assoc(reply_result)) {
        echo "<div class='reply'>";
        echo "<span class='name'>" . reply_row['name'] . "</span>";
        echo "<span class='email'>" .reply_row['email'] . "</span>";
        echo "<span class='message'>" . reply_row['message'] . "</span>";
        echo "</div>";
    }

    // 添加回复表单
    echo "<form action='index.php' method='post'>";
    echo "<input type='hidden' name='parent_id' value='" .row['id'] . "'>";
    echo "<input type='text' name='name' placeholder='姓名'>";
    echo "<input type='email' name='email' placeholder='电子邮件'>";
    echo "<textarea name='message' placeholder='评论'></textarea>";
    echo "<button type='submit'>回复</button>";
    echo "</form>";

    echo "</div>";
}

// 关闭数据库连接
mysqli_close($conn);
?>

当用户在回复表单中提交评论时,将会用与留言相同的方式将回复插入到“comments”表中,并增加相应的父评论ID。

总结

在本文中,我们介绍了在MySQL中HTML与PHP的分离,并演示了如何在PHP中实现评论类功能。使用这些技术,我们可以使代码更加有条理并增加网站的互动性。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程