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 相关文章推荐
php pack与unpack 摸板字符字符含义
Oct 29 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
Apr 12 PHP
php中获取指定IP的物理地址的代码(正则表达式)
Jun 23 PHP
thinkphp实现数组分页示例
Apr 13 PHP
PHP把小数转成整数3种方法
Jun 30 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 PHP
php中运用http调用的GET和POST方法示例
Sep 29 PHP
php中mysql操作buffer用法详解
Mar 19 PHP
Yii2实现ActiveForm ajax提交
May 26 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
Mar 18 PHP
java解析json方法总结
May 16 PHP
Thinkphp5.0 框架Model模型简单用法分析
Oct 11 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
Zend Framework框架Smarty扩展实现方法
2016/03/22 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
PHP使用DOM对XML解析处理操作示例
2019/07/04 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
用js重建星际争霸
2006/12/22 Javascript
JavaScript游戏之优化篇
2010/11/08 Javascript
12种不宜使用的Javascript语法整理
2013/11/04 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
JavaScript中对象介绍
2014/12/31 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
AngularJS实现的简单拖拽功能示例
2018/01/02 Javascript
Ajax获取node服务器数据的完整步骤
2020/09/20 Javascript
跟老齐学Python之再深点,更懂list
2014/09/20 Python
Python中条件判断语句的简单使用方法
2015/08/21 Python
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
python 穷举指定长度的密码例子
2020/04/02 Python
Python执行时间的几种计算方法
2020/07/31 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
北美领先的智能产品购物网站:Wellbots
2018/06/11 全球购物
香港彩色隐形眼镜在线商店:Stunninglens(全球免费送货)
2019/05/10 全球购物
高中生自我评语大全
2014/01/19 职场文书
法学专业自我鉴定
2014/02/05 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
单位委托书范本
2014/04/04 职场文书
模具专业自荐信
2014/05/29 职场文书
图书室标语
2014/06/21 职场文书
汽车车尾标语大全
2015/08/11 职场文书
工作一年自我鉴定
2019/06/20 职场文书
使用MybatisPlus打印sql语句
2022/04/22 SQL Server
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers