当前位置:首页 > PHP教程 > php应用 > 列表

php实现无限级评论功能

发布:smiling 来源: PHP粉丝网  添加日期:2022-06-12 12:03:28 浏览: 评论:0 

php实现评论无限级方法

1、首先在评论表中加入一个存放父级评论ID的字段,其默认值为0,当父级ID为0是就顶级分类。

SQL:

  1. CREATE TABLE comment ( 
  2.  
  3.     comm_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, 
  4.  
  5.     user_id INT UNSIGNED NOT NULL DEFAULT 0 , 
  6.  
  7.     parent_id INT UNSIGNED NOT NULL DEFAULT 0 , 
  8.  
  9.     article_id INT UNSIGNED NOT NULL DEFAULT 0 , 
  10.  
  11.     comm_cont TEXT, 
  12.  
  13.     comm_time INT UNSIGNED NOT NULL DEFAULT 0  
  14.  
  15. ) ENGINE=MYISAM CHARSET=UTF8 ; 

2、再创建一个递归函数,将评论数据转换成树形结构;

PHP:

  1. function get_childs_comment($comments, $parent_id = 0, $level = 0) 
  2.  
  3. { 
  4.  
  5.     $new_comments = []; 
  6.  
  7.  
  8.  
  9.     foreach ($comments as $key => $val) { 
  10.  
  11.         if ($val['pid'] == $parent_id) { 
  12.  
  13.             $val['level'] = $level; 
  14.  
  15.             $val['childs'] = get_childs_comment($comments, $val['id'], $level + 1); 
  16.  
  17.             $new_comments[] = $val; 
  18.  
  19.         } 
  20.  
  21.     } 
  22.  
  23.  
  24.  
  25.     return $new_comments; 
  26.  
  27. } 

返回出来的数据结构如下:

  1. [ 
  2.  
  3.     '一级评论', 
  4.  
  5.     'childs' => [ 
  6.  
  7.         '二级评论' 
  8.  
  9.         'childs' => [ 
  10.  
  11.             '....' 
  12.  
  13.         ] 
  14.  
  15.     ] 
  16.  
  17.  
  18.  
  19. ] 

3、最后将转换后的评论数据,循环展示出来即可。

php实现无限级评论功能

Tags: php无限级评论

分享到: