当前位置:首页 > 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.     $new_comments = []; 
  5.  
  6.  
  7.  
  8.     foreach ($comments as $key => $val) { 
  9.  
  10.         if ($val['pid'] == $parent_id) { 
  11.  
  12.             $val['level'] = $level
  13.  
  14.             $val['childs'] = get_childs_comment($comments$val['id'], $level + 1); 
  15.  
  16.             $new_comments[] = $val
  17.  
  18.         } 
  19.  
  20.     } 
  21.  
  22.  
  23.  
  24.     return $new_comments
  25.  

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

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

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

php实现无限级评论功能

Tags: php无限级评论

分享到: