加入收藏 | 设为首页 | 会员中心 | 我要投稿 临夏站长网 (https://www.0930zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php实现无限级评论功能

发布时间:2022-06-24 15:05:09 所属栏目:PHP教程 来源:互联网
导读:php实现评论无限级方法 1、首先在评论表中加入一个存放父级评论ID的字段,其默认值为0,当父级ID为0是就顶级分类。 SQL: CREATE TABLE comment ( comm_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, user_id INT UNSIGNED NOT NULL DEFAULT 0 , parent_id
  php实现评论无限级方法
 
  1、首先在评论表中加入一个存放父级评论ID的字段,其默认值为0,当父级ID为0是就顶级分类。
 
  SQL:
 
  CREATE TABLE comment (
  
      comm_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  
      user_id INT UNSIGNED NOT NULL DEFAULT 0 ,
  
      parent_id INT UNSIGNED NOT NULL DEFAULT 0 ,
  
      article_id INT UNSIGNED NOT NULL DEFAULT 0 ,
  
      comm_cont TEXT,
  
      comm_time INT UNSIGNED NOT NULL DEFAULT 0  
  
  ) ENGINE=MYISAM CHARSET=UTF8 ;
  2、再创建一个递归函数,将评论数据转换成树形结构;
 
  PHP:
 
  function get_childs_comment($comments, $parent_id = 0, $level = 0)
  
  {
  
      $new_comments = [];

      foreach ($comments as $key => $val) {
  
          if ($val['pid'] == $parent_id) {
  
              $val['level'] = $level;
  
              $val['childs'] = get_childs_comment($comments, $val['id'], $level + 1);
  
              $new_comments[] = $val;
  php实现无限级评论功能
          }
  
      }

      return $new_comments;
  
  }
  返回出来的数据结构如下:
 
  [
  
      '一级评论',
  
      'childs' => [
  
          '二级评论'
  
          'childs' => [
  
              '....'
  
          ]
  
      ]
  
  ]
  3、最后将转换后的评论数据,循环展示出来即可。
 
 

(编辑:临夏站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!