PHP使用递归生成文章树

5年以前  |  阅读数:942 次  |  编程语言:PHP 

因为自己的一个技术站,以文章为主,文章有些是一个系列的,所以想把这些文章归类,同一类的在一个下面。

数据库好设计,无非用id,fatherid来进行归类,fatherid代表父类是那篇文章的id,id是文章的唯一id,层次不限,可以是两层,可以是三层。fatherid为0的表示顶层文章。

php代码,主要是递归


    function category_tree($fatherid){
      //require_once("mysql_class/config.inc.php");
      //require_once("mysql_class/Database.class.php");
      $db = new Database(DB_SERVER, DB_USER, DB_PASS, DB_DATABASE);
      $db->connect();
      $sql = "SELECT id,title,url FROM ".TABLE_TASK." 
         WHERE fatherid=$fatherid and ispublic=1 order by id asc";
      $articles = $db->query($sql);
      $db->close();
      while ($record = $db->fetch_array($articles)){
        $i = 0;
        if ($i == 0){
          if($fatherid==0){
            echo '<ul class="article-list-no-style border-bottom">';
          }else{
            echo '<ul class="article-list-no-style">';
          }

        }
        if($fatherid==0){
          echo '<li><span class="glyphicon glyphicon-log-in" 
          aria-hidden="true" id="han'.$record['id'].'">
          </span>  <a href="'.$record['url'].'" target="_blank">' 
          . $record['title'].'</a>';
        }else{
          echo '<li><span class="glyphicon glyphicon-chevron-right" aria-hidden="true">
          </span> <a href="'.$record['url'].'" target="_blank">' 
          . $record['title'].'</a>';
        }

        category_tree($record['id']);
        echo '</li>';
        $i++;
        if ($i > 0){
          echo '</ul>';
        }
      }
    }

调用:


    category_tree(0) //先提取最顶层文章

以上所述就是本文的全部内容了,希望大家能够喜欢。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例