亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP使用遞歸生成文章樹

 更新時(shí)間:2015年04月21日 09:08:22   投稿:hebedich  
寫遞歸函數(shù),可考慮緩存,定義一些靜態(tài)變量來(lái)存上一次運(yùn)行的結(jié)果,多程序運(yùn)行效率很有幫助.大概步驟如下:首先到數(shù)據(jù)庫(kù)取數(shù)據(jù),放到一個(gè)數(shù)組,然后把數(shù)據(jù)轉(zhuǎn)化為一個(gè)樹型狀的數(shù)組,最后把這個(gè)樹型狀的數(shù)組轉(zhuǎn)為html代碼。下面我們來(lái)看個(gè)實(shí)例

因?yàn)樽约旱囊粋€(gè)技術(shù)站,以文章為主,文章有些是一個(gè)系列的,所以想把這些文章歸類,同一類的在一個(gè)下面。

數(shù)據(jù)庫(kù)好設(shè)計(jì),無(wú)非用id,fatherid來(lái)進(jìn)行歸類,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>&nbsp;&nbsp;<a href="'.$record['url'].'" target="_blank">' 
      . $record['title'].'</a>';
    }else{
      echo '<li><span class="glyphicon glyphicon-chevron-right" aria-hidden="true">
      </span>&nbsp;<a href="'.$record['url'].'" target="_blank">' 
      . $record['title'].'</a>';
    }
    
    category_tree($record['id']);
    echo '</li>';
    $i++;
    if ($i > 0){
      echo '</ul>';
    }
  }
}

調(diào)用:

category_tree(0) //先提取最頂層文章

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • tp5(thinkPHP5)框架連接數(shù)據(jù)庫(kù)的方法示例

    tp5(thinkPHP5)框架連接數(shù)據(jù)庫(kù)的方法示例

    這篇文章主要介紹了tp5(thinkPHP5)框架連接數(shù)據(jù)庫(kù)的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了基于thinkPHP5框架連接數(shù)據(jù)庫(kù)的相關(guān)配置、數(shù)據(jù)讀取、模板渲染等操作技巧,需要的朋友可以參考下
    2018-12-12
  • php微信公眾號(hào)開發(fā)之翻頁(yè)查詢

    php微信公眾號(hào)開發(fā)之翻頁(yè)查詢

    這篇文章主要為大家詳細(xì)介紹了php微信公眾號(hào)開發(fā)之翻頁(yè)查詢功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • php7 安裝yar 生成docker鏡像

    php7 安裝yar 生成docker鏡像

    這篇文章主要介紹了php7 安裝yar 生成docker鏡像,需要的朋友可以參考下
    2017-05-05
  • Laravel框架中緩存的使用方法分析

    Laravel框架中緩存的使用方法分析

    這篇文章主要介紹了Laravel框架中緩存的使用方法,結(jié)合具體實(shí)例形式分析了Laravel框架中緩存的常用方法、操作步驟及相關(guān)使用操作技巧,需要的朋友可以參考下
    2019-09-09
  • windows系統(tǒng)php環(huán)境安裝swoole具體步驟

    windows系統(tǒng)php環(huán)境安裝swoole具體步驟

    這篇文章主要介紹了windows系統(tǒng)php環(huán)境安裝swoole具體步驟,swoole目前是比較熱門的一個(gè)擴(kuò)展插件,有需要的同學(xué)可以學(xué)習(xí)下
    2021-03-03
  • PHP jQuery+Ajax結(jié)合寫批量刪除功能

    PHP jQuery+Ajax結(jié)合寫批量刪除功能

    這篇文章主要介紹了PHP jQuery+Ajax結(jié)合寫批量刪除功能的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • php實(shí)現(xiàn)記事本案例

    php實(shí)現(xiàn)記事本案例

    這篇文章主要為大家詳細(xì)介紹了php實(shí)現(xiàn)記事本案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 詳解Laravel5.6通過(guò)路由進(jìn)行API版本控制的簡(jiǎn)單方法

    詳解Laravel5.6通過(guò)路由進(jìn)行API版本控制的簡(jiǎn)單方法

    這篇文章主要介紹了詳解Laravel5.6通過(guò)路由進(jìn)行API版本控制的簡(jiǎn)單方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • PHP+MYSQL實(shí)現(xiàn)用戶的增刪改查

    PHP+MYSQL實(shí)現(xiàn)用戶的增刪改查

    本文給大家分享的是使用PHP+MYSQL實(shí)現(xiàn)用戶的增刪改查功能的全部頁(yè)面代碼,非常的詳細(xì),也很實(shí)用,適合php的初學(xué)者,有需要的小伙伴參考下。
    2015-03-03
  • Laravel5.1 框架控制器基礎(chǔ)用法實(shí)例分析

    Laravel5.1 框架控制器基礎(chǔ)用法實(shí)例分析

    這篇文章主要介紹了Laravel5.1 框架控制器基礎(chǔ)用法,結(jié)合實(shí)例形式分析了laravel5.1框架控制器的基本原理、定義與使用方法,需要的朋友可以參考下
    2020-01-01

最新評(píng)論