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_MySQL教程-第一天
Mar 18 PHP
php 三维饼图的实现代码
Sep 28 PHP
PHP开发规范手册之PHP代码规范详解
Jan 13 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
Sep 20 PHP
php代码中使用换行及(\n或\r\n和br)的应用
Feb 02 PHP
PHP自定义大小验证码的方法详解
Jun 07 PHP
php遍历文件夹下的所有文件和子文件夹示例
Mar 20 PHP
PHP解码unicode编码的中文字符代码分享
Aug 13 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
May 12 PHP
学习php设计模式 php实现原型模式(prototype)
Dec 07 PHP
php实现登录页面的简单实例
Sep 29 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去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
用PHP编写和读取XML的几种方式
2013/01/12 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
js 判断checkbox是否选中的操作方法
2012/11/09 Javascript
js编码、解码函数介绍及其使用示例
2013/09/05 Javascript
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
JavaScript实现模仿桌面窗口的方法
2015/07/18 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
AngularJs concepts详解及示例代码
2016/09/01 Javascript
使用jquery给新生的th绑定hover事件的实例
2017/02/10 Javascript
微信小程序多列选择器range-key使用详解
2020/03/30 Javascript
axios发送post请求,提交图片类型表单数据方法
2018/03/16 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
2018/07/04 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
jquery弹窗时禁止body滚动条滚动的例子
2019/09/21 jQuery
使用Python生成XML的方法实例
2017/03/21 Python
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
Python基于dom操作xml数据的方法示例
2018/05/12 Python
详解Python发送email的三种方式
2018/10/18 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
python 默认参数相关知识详解
2019/09/18 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
Java基础面试题
2012/11/02 面试题
办公室文员工作自我评价
2013/12/01 职场文书
公司户外活动总结
2014/07/04 职场文书
怎样写离婚协议书
2015/01/26 职场文书
会议通知
2015/04/15 职场文书
2016新春团拜会致辞
2015/08/01 职场文书
欢送领导祝酒词
2015/08/12 职场文书