PHP使用递归生成文章树


Posted in PHP onApril 21, 2015

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

数据库好设计,无非用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 相关文章推荐
php4的session功能评述(一)
Oct 09 PHP
PHP has encountered an Access Violation
Jan 15 PHP
一个更简单的无限级分类菜单代码
Jan 16 PHP
PHP 身份验证方面的函数
Oct 11 PHP
PHP 巧用数组降低程序的时间复杂度
Jan 01 PHP
php中$_POST与php://input的区别实例分析
Jan 07 PHP
在Nginx上部署ThinkPHP项目教程
Feb 02 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
详解HTTP Cookie状态管理机制
Jan 14 PHP
php封装的page分页类完整实例
Oct 18 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
Apr 20 PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 PHP
php实现的美国50个州选择列表实例
Apr 20 #PHP
PHP也能干大事之PHP中的编码解码详解
Apr 20 #PHP
php中使用base HTTP验证的方法
Apr 20 #PHP
PHP加密解密类实例分析
Apr 20 #PHP
php通过分类列表产生分类树数组的方法
Apr 20 #PHP
PHP统计数值数组中出现频率最多的10个数字的方法
Apr 20 #PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
Apr 20 #PHP
You might like
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
第八节 访问方式 [8]
2006/10/09 PHP
PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
2010/06/09 PHP
php中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
php的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
2014最热门的24个php类库汇总
2014/12/18 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
JavaScript 私有成员分析
2009/01/13 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
js原生代码实现轮播图的实例讲解
2017/07/28 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
[00:12]DAC2018 天才少年转战三号位,他的SOLO是否仍如昔日般强大?
2018/04/06 DOTA
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
python条件和循环的使用方法
2013/11/01 Python
Python的类实例属性访问规则探讨
2015/01/30 Python
Python第三方库xlrd/xlwt的安装与读写Excel表格
2017/01/21 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
python2和python3的输入和输出区别介绍
2018/11/20 Python
Python装饰器限制函数运行时间超时则退出执行
2019/04/09 Python
Python shutil模块用法实例分析
2019/10/02 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
Python实现爬取网页中动态加载的数据
2020/08/17 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
新闻记者实习自我鉴定
2013/09/19 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
软弱涣散基层党组织整改方案
2014/10/25 职场文书
公司员工手册范本
2015/05/14 职场文书
Python基础之赋值,浅拷贝,深拷贝的区别
2021/04/30 Python
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python
Oracle安装TNS_ADMIN环境变量设置参考
2021/11/01 Oracle
Python如何使用循环结构和分支结构
2022/04/13 Python
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技