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 相关文章推荐
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
Oct 09 PHP
PHP 高手之路(一)
Oct 09 PHP
超级实用的7个PHP代码片段分享
Jan 05 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
递归删除一个节点以及该节点下的所有节点示例
Mar 19 PHP
php数据库备份还原类分享
Mar 20 PHP
php异常处理方法实例汇总
Jun 24 PHP
PHP变量赋值、代入给JavaScript中的变量
Jun 29 PHP
2017年最新PHP经典面试题目汇总(上篇)
Mar 17 PHP
PHP两个n位的二进制整数相加问题的解决
Aug 26 PHP
PHP中->和=>的意思
Mar 31 PHP
php字符串倒叙
Apr 01 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 输出缓存详解
2009/06/20 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
2015/03/10 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
2017/02/20 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
学习ExtJS TextField常用方法
2009/10/07 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
TableSort.js表格排序插件使用方法详解
2017/02/10 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
JavaScript实现移动端弹窗后禁止滚动
2020/05/25 Javascript
Python实现Linux下守护进程的编写方法
2014/08/22 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
查看已安装tensorflow版本的方法示例
2020/04/19 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
初级Java程序员面试题
2016/03/03 面试题
技术学校毕业生求职信分享
2013/12/02 职场文书
我的画教学反思
2014/04/28 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
2015大学迎新晚会主持词
2015/07/16 职场文书
安全教育日主题班会
2015/08/13 职场文书
Redis可视化客户端小结
2021/06/10 Redis