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 相关文章推荐
如何给phpadmin一个保护
Oct 09 PHP
如何利用php+mysql保存和输出文件
Oct 09 PHP
很好用的PHP数据库类
May 27 PHP
支持中文的PHP按字符串长度分割成数组代码
May 17 PHP
简单介绍PHP的责任链编程模式
Aug 11 PHP
php视频拍照上传头像功能实现代码分享
Oct 08 PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
Mar 21 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
Jan 19 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
thinkphp5.1框架模板赋值与变量输出示例
May 25 PHP
解决PhpStorm64不能启动的问题
Jun 20 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
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
PHP常量define和const的区别详解
2019/05/18 PHP
js随机颜色代码的多种实现方式
2013/04/23 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
js实现扫雷源代码
2020/11/27 Javascript
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
python 高效去重复 支持GB级别大文件的示例代码
2018/11/08 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
Python 列表反转显示的四种方法
2020/11/16 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
兼职业务员岗位职责
2014/01/01 职场文书
医学生职业规划范文
2014/01/05 职场文书
求职意向书
2014/04/01 职场文书
社区禁毒工作方案
2014/06/02 职场文书
环境工程专业自荐信范文
2014/06/24 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
学校社团活动总结
2015/05/07 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
小学主题班会教案
2015/08/17 职场文书
2016年大学迎新工作总结
2015/10/14 职场文书
Python使用UDP实现720p视频传输的操作
2021/04/24 Python