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 cookis创建实现代码
Mar 16 PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 PHP
php解析html类库simple_html_dom(详细介绍)
Jul 05 PHP
PHP file_get_contents设置超时处理方法
Sep 30 PHP
ThinkPHP惯例配置文件详解
Jul 14 PHP
php出现内存位置访问无效错误问题解决方法
Aug 16 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
Dec 29 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
Sep 14 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
Mar 12 PHP
PHP实现 APP端微信支付功能
Jun 22 PHP
Laravel5.1框架注册中间件的三种场景详解
Jul 09 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代码
2010/08/08 PHP
php查看网页源代码的方法
2015/03/13 PHP
列举PHP的Yii 2框架的开发优势
2015/07/03 PHP
Laravel学习基础之migrate的使用教程
2017/10/11 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
js获取键盘按键响应事件(兼容各浏览器)
2013/05/16 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
javascript中的 object 和 function小结
2016/08/14 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
2018/05/16 Javascript
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
浅谈Redux中间件的实践
2018/07/27 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
Python入门Anaconda和Pycharm的安装和配置详解
2019/07/16 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
python时间日期操作方法实例小结
2020/02/06 Python
python里的单引号和双引号的有什么作用
2020/06/17 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
俄语翻译实习生的自我评价分享
2013/11/06 职场文书
优秀教师个人材料
2014/12/15 职场文书
人与自然观后感
2015/06/16 职场文书
职工食堂管理制度
2015/08/06 职场文书
尊师重教主题班会
2015/08/14 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书