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.MVC的模板标签系统(一)
Sep 05 PHP
IIS7.X配置PHP运行环境小结
Jun 09 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
Mar 27 PHP
php利用新浪接口查询ip获取地理位置示例
Jan 20 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
Jun 10 PHP
PHP中的多行字符串传递给JavaScript的两种方法
Jun 19 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
浅析php原型模式
Nov 25 PHP
php 人员权限管理(RBAC)实例(推荐)
May 24 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
Oct 10 PHP
Laravel如何自定义command命令浅析
Mar 23 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
《超神学院》霸气归来, 天使彦上演维多利亚的秘密
2020/03/02 国漫
mysql 搜索之简单应用
2007/04/27 PHP
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
支付宝服务窗API接口开发php版本
2016/07/20 PHP
繁简字转换功能
2006/07/19 Javascript
js 调整select 位置的函数
2008/02/21 Javascript
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
AngularJS $injector 依赖注入详解
2016/09/14 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
2017/08/04 jQuery
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
JavaScript 中使用 Generator的方法
2017/12/29 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
Python实现的最近最少使用算法
2015/07/10 Python
Python程序员面试题 你必须提前准备!
2018/01/16 Python
在NumPy中创建空数组/矩阵的方法
2018/06/15 Python
python虚拟环境迁移方法
2019/01/03 Python
基于keras输出中间层结果的2种实现方式
2020/01/24 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
Python接口测试结果集实现封装比较
2020/05/01 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
《唯一的听众》教学反思
2014/02/20 职场文书
文案策划求职信
2014/03/18 职场文书
教你怎么用Python selenium操作浏览器对象的基础API
2021/06/23 Python
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript
cypress测试本地web应用
2022/06/01 Javascript