php评论后面的回复怎么做

fiy 其他 109

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在PHP中实现评论后的回复功能,可以借助数据库和前端技术来实现。

    首先,需要一个数据库表来存储评论和回复的信息。可以创建一个名为comments的表,包含字段comment_id、content、parent_comment_id和create_time等字段,分别用于记录评论的ID、内容、父评论ID和创建时间。

    在页面上显示评论列表时,可以按照一定的规则展示评论和回复的关系。可以使用递归函数来实现,逐层遍历评论和回复,并根据parent_comment_id字段来确定回复的目标。例如,可以使用以下代码:

    “`
    function displayComments($comments, $parent_id = 0) {
    foreach ($comments as $comment) {
    if ($comment[‘parent_comment_id’] == $parent_id) {
    echo ‘

    ‘;
    echo ‘

    ‘ . $comment[‘content’] . ‘

    ‘;
    echo ‘回复‘;
    displayComments($comments, $comment[‘comment_id’]);
    echo ‘

    ‘;
    }
    }
    }
    “`

    在用户点击回复按钮时,可以通过Ajax请求向后端发送评论回复的数据。后端接收到请求后,将回复的内容和父评论的ID保存到数据库中,然后返回新添加的回复的信息给前端,在页面上显示新增的回复内容。

    后端的代码示例:

    “`
    // 接收Ajax请求
    if ($_SERVER[‘REQUEST_METHOD’] == ‘POST’) {
    // 获取回复内容和父评论 ID
    $reply_content = $_POST[‘content’];
    $parent_comment_id = $_POST[‘parent_comment_id’];

    // 将回复信息保存到数据库中,略…

    // 返回新增回复的信息给前端
    $reply_id = // 获取新增回复的ID
    $reply_time = // 获取新增回复的时间
    $reply_info = array(
    ‘reply_id’ => $reply_id,
    ‘content’ => $reply_content,
    ‘create_time’ => $reply_time
    );
    echo json_encode($reply_info);
    exit;
    }
    “`

    最后,通过前端的JavaScript代码将新添加的回复信息展示在页面上。可以使用jQuery的Ajax方法来发送请求和处理返回的数据。

    前端的代码示例:

    “`
    $(document).ready(function() {
    // 点击回复按钮时的事件处理
    $(‘.reply-btn’).on(‘click’, function() {
    var parent_comment_id = // 获取父评论 ID
    var reply_content = // 获取回复内容

    // 发送Ajax请求
    $.ajax({
    url: ‘reply.php’,
    type: ‘POST’,
    data: {
    parent_comment_id: parent_comment_id,
    content: reply_content
    },
    dataType: ‘json’,
    success: function(data) {
    // 在页面上显示新增的回复内容
    var reply_html = ‘

    ‘;
    reply_html += ‘

    ‘ + data.content + ‘

    ‘;
    reply_html += ‘

    ‘;
    // 将新回复追加到对应的父评论下
    $(reply_html).appendTo($(this).parent().next(‘.comment’));
    }
    });
    });
    });
    “`

    以上是一种基本的实现思路和示例代码,可以根据实际情况进行适当调整和扩展。在实际开发中,还可以考虑评论和回复的分页展示、用户登录验证等功能的实现。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在 PHP 中,实现评论后面的回复通常有几种方法。以下是其中的五种方法:

    1. 使用数据库记录回复信息:在数据库中创建一个用于存储回复的表格,包含评论的ID作为外键关联。当用户提交回复时,将回复的内容、回复者的信息以及评论的ID存储到数据库中。可以使用 SQL 语句查询时,通过评论的ID来获取与其相关的回复。

    “`php
    // 建立数据库连接
    $conn = new mysqli(“localhost”, “username”, “password”, “database”);

    // 插入回复数据
    $comment_id = $_POST[‘comment_id’];
    $comment_reply = $_POST[‘comment_reply’];

    $sql = “INSERT INTO replies (comment_id, reply_content) VALUES (‘$comment_id’, ‘$comment_reply’)”;
    $result = $conn->query($sql);

    // 获取回复数据
    $sql = “SELECT * FROM replies WHERE comment_id = ‘$comment_id'”;
    $result = $conn->query($sql);

    // 处理回复数据
    while($row = $result->fetch_assoc()) {
    echo $row[‘reply_content’];
    }
    “`

    2. 使用数组嵌套的方式存储回复:当用户提交回复时,将回复的内容、回复者的信息以及评论的ID存储为一个数组,作为评论的一个属性。这样就可以将评论和它的回复一起存储,方便地显示和处理。

    “`php
    // 定义回复数组
    $comment_replies = array();

    // 添加回复
    $comment_id = $_POST[‘comment_id’];
    $comment_reply = $_POST[‘comment_reply’];

    $comment_replies[$comment_id][] = $comment_reply;

    // 获取回复
    $replies = $comment_replies[$comment_id];

    // 处理回复数据
    foreach ($replies as $reply) {
    echo $reply;
    }
    “`

    3. 使用面向对象的方式实现评论和回复:创建一个 Comment 类,具有评论的属性和方法。在 Comment 类中,可以使用一个数组来存储回复。通过添加和获取回复的方法,可以很方便地实现评论后面的回复。

    “`php
    class Comment {
    private $id;
    private $content;
    private $replies = array();

    public function __construct($id, $content) {
    $this->id = $id;
    $this->content = $content;
    }

    public function addReply($reply) {
    $this->replies[] = $reply;
    }

    public function getReplies() {
    return $this->replies;
    }
    }

    // 创建评论对象
    $comment = new Comment(1, “这是一条评论”);

    // 添加回复
    $comment_reply = $_POST[‘comment_reply’];
    $comment->addReply($comment_reply);

    // 获取回复
    $replies = $comment->getReplies();

    // 处理回复数据
    foreach ($replies as $reply) {
    echo $reply;
    }
    “`

    4. 使用文件存储回复:将回复内容存储在一个文件中,每一行代表一条回复。当用户提交回复时,将回复的内容追加到文件的末尾。通过读取该文件,可以获取所有的回复内容。

    “`php
    // 添加回复
    $comment_id = $_POST[‘comment_id’];
    $comment_reply = $_POST[‘comment_reply’];

    $file = fopen(“replies.txt”, “a”);
    fwrite($file, “$comment_id,$comment_reply\n”);
    fclose($file);

    // 获取回复
    $file = fopen(“replies.txt”, “r”);
    while(!feof($file)){
    $line = fgets($file);
    $data = explode(“,”, $line);

    if ($data[0] == $comment_id) {
    echo $data[1];
    }
    }
    fclose($file);
    “`

    5. 使用 Session 存储回复:将回复内容存储在 Session 中,通过一个数组来保存评论和它的回复。当用户提交回复时,将回复的内容添加到 Session 的数组中。

    “`php
    // 启动 Session
    session_start();

    // 添加回复
    $comment_id = $_POST[‘comment_id’];
    $comment_reply = $_POST[‘comment_reply’];

    $_SESSION[‘replies’][$comment_id][] = $comment_reply;

    // 获取回复
    $replies = $_SESSION[‘replies’][$comment_id];

    // 处理回复数据
    foreach ($replies as $reply) {
    echo $reply;
    }
    “`

    这些方法提供了不同的实现方式,选择适合您需求的方式来实现评论后面的回复。可以根据项目的规模、需求和个人喜好选择适合的方法。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在实现PHP评论系统中,为了让用户能够回复评论,可以采用以下几种方法来实现:

    1. 嵌套评论表:通过在评论表中添加一个`parent_id`字段,用来表示该评论的父评论ID。当用户回复评论时,将父评论的ID存储到`parent_id`字段中。这样,可以通过查询父评论的ID来获取所有关联的回复评论。在显示评论时,可以按照父评论ID进行嵌套显示。

    2. 无限层级评论:在评论表中除了`parent_id`字段外,还可以添加`level`字段,用来表示评论的层级。一般情况下,父评论的`level`为0,子评论的`level`为父评论的`level`加1。在显示评论时,可以根据评论的`level`值进行缩进显示,使其形成层级关系。

    3. 使用树状结构:通过使用树状结构,将评论以树的形式存储在数据库中。可以在评论表中添加`left`和`right`字段,用来表示评论在树中的位置。当用户回复评论时,根据父评论的位置,将新的回复评论插入到相应位置。在显示评论时,可以通过查询树结构,并根据`left`和`right`字段进行排序和缩进显示。

    4. 使用递归函数:通过递归函数来实现无限层级的评论回复。在显示评论时,使用递归函数遍历评论数据,并根据评论的层级在HTML中进行缩进显示。当用户回复评论时,递归函数会将回复的评论插入到对应的父评论下。

    以上是几种常见的实现评论回复的方法。根据具体的需求和项目结构,选择适合的方法来实现评论系统中的回复功能。同时,为了保证系统的性能和可扩展性,可以对评论回复功能进行优化,如使用缓存技术、分页显示等。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部