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 相关文章推荐
杏林同学录(六)
Oct 09 PHP
模板引擎Smarty深入浅出介绍
Dec 06 PHP
又一个php 分页类实现代码
Dec 03 PHP
探讨PHP中OO之静态关键字以及类常量的详解
Jun 07 PHP
使用php记录用户通过搜索引擎进网站的关键词
Feb 13 PHP
php统计时间和内存使用情况示例分享
Mar 13 PHP
常见php数据文件缓存类汇总
Dec 05 PHP
php正则替换处理HTML页面的方法
Jun 17 PHP
如何使用PHP给图片加水印
Oct 12 PHP
PHP运行模式汇总
Nov 06 PHP
YII框架实现自定义第三方扩展操作示例
Apr 26 PHP
php实现简单四则运算器
Nov 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
ThinkPHP自动完成中使用函数与回调方法实例
2014/11/29 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
PHP读取文件内容的五种方式
2015/12/28 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
$()JS小技巧
2007/07/21 Javascript
Javascript中产生固定结果的函数优化技巧
2013/01/16 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
浅析js预加载/延迟加载
2014/09/25 Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
2015/11/19 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
ES6 新增的创建数组的方法(小结)
2019/08/01 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
2019/08/26 Javascript
JS前端模块化原理与实现方法详解
2020/03/17 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
Python通过RabbitMQ服务器实现交换机功能的实例教程
2016/06/29 Python
Python中几种导入模块的方式总结
2017/04/27 Python
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
python实现祝福弹窗效果
2019/04/07 Python
python3 requests库文件上传与下载实现详解
2019/08/22 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
Python谱减法语音降噪实例
2019/12/18 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
python和JavaScript哪个容易上手
2020/06/23 Python
如何利用python进行时间序列分析
2020/08/04 Python
python matplotlib库的基本使用
2020/09/23 Python
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
上课说话检讨书500字
2014/11/01 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
消防隐患整改通知书
2015/04/22 职场文书
为什么阅读对所有年龄段的孩子都很重要?
2019/07/08 职场文书
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android