php怎么获取评论下面的所有评论

fiy 其他 140

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    要获取评论下面的所有评论,你可以利用递归的方式逐层遍历评论树。下面是一个使用PHP语言的示例代码,可以帮助你实现这个功能:

    “`php
    1, ‘parent_id’ => null),
    array(‘id’ => 2, ‘parent_id’ => 1),
    array(‘id’ => 3, ‘parent_id’ => 1),
    array(‘id’ => 4, ‘parent_id’ => 2),
    array(‘id’ => 5, ‘parent_id’ => 2),
    array(‘id’ => 6, ‘parent_id’ => 3),
    array(‘id’ => 7, ‘parent_id’ => null),
    array(‘id’ => 8, ‘parent_id’ => 7),
    array(‘id’ => 9, ‘parent_id’ => 8),
    );

    // 逐层遍历评论树
    function getCommentsByParentId($comments, $parentId = null, $depth = 0) {
    $result = array();

    foreach ($comments as $comment) {
    $id = $comment[‘id’];
    $parent_id = $comment[‘parent_id’];

    if ($parent_id == $parentId) {
    $comment[‘depth’] = $depth; // 添加一个depth字段表示层级
    $result[] = $comment;

    $children = getCommentsByParentId($comments, $id, $depth + 1);
    $result = array_merge($result, $children);
    }
    }

    return $result;
    }

    // 调用函数获取所有评论
    $allComments = getCommentsByParentId($comments);

    // 输出所有评论的id和层级
    foreach ($allComments as $comment) {
    echo “id: ” . $comment[‘id’] . “, depth: ” . $comment[‘depth’] . “\n”;
    }
    “`

    上述代码中,我们通过递归方式遍历了评论树,将每个评论以数组形式存储,并添加了一个`depth`字段表示层级。最后,我们通过遍历输出了所有评论的id和层级。

    请根据你实际的评论数据结构进行相应的修改。希望对你有帮助!

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在PHP中,获取评论下面的所有评论可以通过以下步骤实现:

    1. 连接数据库:首先,使用 PHP 的 MySQLi 或 PDO 扩展来连接到你的评论数据库。

    2. 查询评论:通过使用 SELECT 语句从评论表中获取所有的父评论。父评论是那些没有父级评论的评论。

    3. 循环遍历父评论:通过使用循环,遍历每个父评论,并按照评论 ID 查询子评论。

    4. 查询子评论:对于每个父评论,使用 SELECT 语句从评论表中获取与该父评论关联的子评论。你可以使用父评论的 ID 与子评论的 parent_id 列进行匹配。

    5. 输出评论:将父评论和对应的子评论输出到页面中。可以使用 HTML 标记和 CSS 样式来格式化你的评论显示。

    以下是一个示例代码,演示如何获取评论下面的所有评论:

    “`php
    connect_error) {
    die(“连接失败: ” . $conn->connect_error);
    }

    // 查询父评论
    $sql = “SELECT * FROM comments WHERE parent_id IS NULL”;
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
    // 遍历父评论
    while ($row = $result->fetch_assoc()) {
    echo “父评论:”.$row[“comment”].”
    “;

    // 查询子评论
    $parent_id = $row[“id”];
    $sql_child = “SELECT * FROM comments WHERE parent_id = $parent_id”;
    $result_child = $conn->query($sql_child);

    if ($result_child->num_rows > 0) {
    // 遍历子评论
    while ($row_child = $result_child->fetch_assoc()) {
    echo “子评论:”.$row_child[“comment”].”
    “;
    }
    } else {
    echo “没有子评论。”;
    }
    }
    } else {
    echo “没有评论。”;
    }

    $conn->close();
    ?>
    “`

    上述代码仅为示例,具体的数据库结构和表名需要根据你的实际情况进行修改。通过这种方法,你可以获取评论下面的所有评论,并将其按照父评论和子评论的关系进行显示。

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

    获取评论下面的所有评论可以通过递归的方式来实现。具体操作流程如下:

    1、首先,获取一级评论列表。可以从数据库中查询一级评论的数据,或从接口中获取一级评论的数据。

    2、遍历一级评论列表,针对每个一级评论,获取其对应的所有子评论。这一步可以通过递归来实现。

    3、为了方便处理子评论,可以将每个子评论的数据结构中添加一个字段,表示其父级评论的id。

    4、递归获取子评论。针对每个一级评论,调用一个递归函数来获取其所有的子评论。递归函数的步骤如下:

    4.1、从数据库中查询或接口中获取当前评论的子评论列表,根据父级评论id进行筛选。

    4.2、遍历子评论列表,将每个子评论添加到一个结果数组中。

    4.3、对于每个子评论,调用递归函数来获取其所有的子评论,并将其添加到结果数组中。

    4.4、返回结果数组。

    5、将获取到的一级评论和所有子评论合并成一个评论列表。

    下面是一个示例代码,演示如何使用递归函数来获取评论下面的所有评论:

    “`php
    // 递归函数,用于获取指定评论的所有子评论
    function getChildrenComments($commentId, $allComments) {
    $children = array();
    foreach ($allComments as $comment) {
    if ($comment[‘parent_id’] == $commentId) {
    $comment[‘children’] = getChildrenComments($comment[‘id’], $allComments);
    $children[] = $comment;
    }
    }
    return $children;
    }

    // 获取一级评论列表,可从数据库或接口中获取
    $topLevelComments = array(
    array(‘id’ => 1, ‘content’ => ‘One-level Comment 1’, ‘parent_id’ => 0),
    array(‘id’ => 2, ‘content’ => ‘One-level Comment 2’, ‘parent_id’ => 0)
    );

    // 获取所有评论,包括一级评论和子评论,可以从数据库中查询或接口中获取
    $allComments = array(
    array(‘id’ => 1, ‘content’ => ‘One-level Comment 1’, ‘parent_id’ => 0),
    array(‘id’ => 2, ‘content’ => ‘One-level Comment 2’, ‘parent_id’ => 0),
    array(‘id’ => 3, ‘content’ => ‘Child Comment 1’, ‘parent_id’ => 1),
    array(‘id’ => 4, ‘content’ => ‘Child Comment 2’, ‘parent_id’ => 1),
    array(‘id’ => 5, ‘content’ => ‘Sub-child Comment 1’, ‘parent_id’ => 3)
    );

    // 获取一级评论和子评论
    $comments = array();
    foreach ($topLevelComments as $comment) {
    $comment[‘children’] = getChildrenComments($comment[‘id’], $allComments);
    $comments[] = $comment;
    }

    // 打印评论列表
    print_r($comments);
    “`

    通过以上步骤,就可以获取评论下面的所有评论,并组织成一个嵌套的数据结构,方便后续处理或展示。当然,具体的实现方式还要根据实际情况进行调整和优化。

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

400-800-1024

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

分享本页
返回顶部