最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php實(shí)現(xiàn)無(wú)限級(jí)分類實(shí)現(xiàn)代碼(遞歸方法)

 更新時(shí)間:2011年01月01日 23:45:46   作者:  
近期做的一個(gè)網(wǎng)站需要一個(gè)無(wú)限級(jí)下拉列表的無(wú)限級(jí)分級(jí)功能,于是就有了下面的作品。
開(kāi)始以為這樣的功能似乎很難,之前也做過(guò)一個(gè)百科的東西,其中也涉及到了分類的功能,不過(guò)不是無(wú)限級(jí)的分類,而是簡(jiǎn)單的實(shí)現(xiàn)了固定的三級(jí)分類,當(dāng)時(shí)是自己設(shè)計(jì)的,想在想起來(lái)實(shí)現(xiàn)方法太土了,其實(shí)三級(jí)分類也只是無(wú)限級(jí)分類的一種特殊情況而已嘛。經(jīng)過(guò)一段時(shí)間考慮,已經(jīng)有了一些眉目,到網(wǎng)上一查,原來(lái)這樣的東西鋪天蓋地,呵呵。其實(shí)無(wú)限級(jí)下拉列表功能是很簡(jiǎn)單的,無(wú)非就是用一個(gè)遞歸算法就好啦。
首先要設(shè)計(jì)數(shù)據(jù)庫(kù),需要建一個(gè)表,里面存儲(chǔ)分類信息,至少需要3個(gè)字段,第一個(gè)是主鍵(ID),第二個(gè)是父級(jí)分類ID(parentid),第三個(gè)是分類的名稱(classname)。可能的一種效果是:
ID PARENTID CLASSNAME
1 0 一級(jí)分類A
2 0 一級(jí)分類B
3 1 二級(jí)分類A
4 1 二級(jí)分類B
主要思路:首先看第三行和第四行,父類ID(PARENTID)的值是1,表示屬于id=1這個(gè)類的子類,而,一,二兩行因?yàn)槭且患?jí)分類,沒(méi)有上級(jí)分類,所以父類ID(PARENTID)的值是0,表示初級(jí)分類,依次類推便實(shí)現(xiàn)了無(wú)限級(jí)分類。最終的效果是:
├一級(jí)分類A
├─┴二級(jí)分類A
├─┴二級(jí)分類B
├一級(jí)分類B
然后就是程序,這里以PHP作為描述語(yǔ)言,可以很方便的改成其他語(yǔ)言,因?yàn)樵硐嗨?,就是一個(gè)遞歸而已。
復(fù)制代碼 代碼如下:

<?php
$dbhost = "localhost"; // 數(shù)據(jù)庫(kù)主機(jī)名
$dbuser = "root"; // 數(shù)據(jù)庫(kù)用戶名
$dbpd = "123456"; // 數(shù)據(jù)庫(kù)密碼
$dbname = "test"; // 數(shù)據(jù)庫(kù)名
mysql_connect($dbhost,$dbuser,$dbpd); //連接主機(jī)
mysql_select_db($dbname); //選擇數(shù)據(jù)庫(kù)
mysql_query("SET NAMES 'utf8'");
display_tree("├",0);
function display_tree($tag,$classid) {
$result = mysql_query("
SELECT *
FROM ylmf_class
WHERE parentid = '" . $classid . "'
;"
);
while ($row = mysql_fetch_array($result)) {
// 縮進(jìn)顯示節(jié)點(diǎn)名稱
echo $tag.$row['classname'] . "<br/>";
//再次調(diào)用這個(gè)函數(shù)顯示子節(jié)點(diǎn)的子節(jié)點(diǎn)
display_tree($tag."─┴",$row['id']);
}
}
?>

這樣遞歸方法,對(duì)于大量的子欄目是個(gè)負(fù)擔(dān),一些成熟的cms系統(tǒng)。都是生產(chǎn)數(shù)組方便調(diào)用,也能大幅的提高效率。

相關(guān)文章

  • php mail to 配置詳解

    php mail to 配置詳解

    本文為大家介紹下php mail to的配置方法,具體如下,需要的朋友可以參考下
    2014-01-01
  • php expects parameter 1 to be resource, array given 錯(cuò)誤

    php expects parameter 1 to be resource, array given 錯(cuò)誤

    從名字可以看出來(lái)這是說(shuō)你傳的參數(shù)有問(wèn)題,也就是說(shuō),你在定義傳遞參數(shù)的時(shí)候 例如 mysql_query($query,$result),這兩個(gè)參數(shù),你只用了$query這個(gè)參數(shù),那么$result這個(gè)參數(shù),沒(méi)有使用,就會(huì)報(bào)這個(gè)錯(cuò)誤
    2011-03-03
  • php定時(shí)計(jì)劃任務(wù)的實(shí)現(xiàn)方法詳解

    php定時(shí)計(jì)劃任務(wù)的實(shí)現(xiàn)方法詳解

    本篇文章是對(duì)php定時(shí)計(jì)劃任務(wù)的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 深入講解PHP的對(duì)象注入(Object Injection)

    深入講解PHP的對(duì)象注入(Object Injection)

    這篇文章主要介紹了PHP中對(duì)象注入的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-03-03
  • php 獲取今日、昨日、上周、本月的起始時(shí)間戳和結(jié)束時(shí)間戳的方法

    php 獲取今日、昨日、上周、本月的起始時(shí)間戳和結(jié)束時(shí)間戳的方法

    php 獲取今日、昨日、上周、本月的起始時(shí)間戳和結(jié)束時(shí)間戳的方法,主要使用到了 php 的時(shí)間函數(shù) mktime,下面首先還是直奔主題以示例說(shuō)明如何使用 mktime 獲取今日、昨日、上周、本月的起始時(shí)間戳和結(jié)束時(shí)間戳,然后在介紹一下 mktime 函數(shù)作用和用法
    2013-09-09
  • PHP7.1方括號(hào)數(shù)組符號(hào)多值復(fù)制及指定鍵值賦值用法分析

    PHP7.1方括號(hào)數(shù)組符號(hào)多值復(fù)制及指定鍵值賦值用法分析

    這篇文章主要介紹了PHP7.1方括號(hào)數(shù)組符號(hào)多值復(fù)制及指定鍵值賦值用法,結(jié)合實(shí)例形式對(duì)比分析了php7數(shù)組復(fù)制與賦值的新特性與操作技巧,需要的朋友可以參考下
    2016-09-09
  • str_replace只替換一次字符串的方法

    str_replace只替換一次字符串的方法

    我們都知道,在PHP里Strtr,strreplace等函數(shù)都可以用來(lái)替換,不過(guò)他們每次替換的時(shí)候都是全部替換,但是如果你想只替換一個(gè)或兩個(gè)怎么辦呢?看下邊的解決方法
    2013-04-04
  • PHP靜態(tài)新聞列表自動(dòng)生成代碼

    PHP靜態(tài)新聞列表自動(dòng)生成代碼

    PHP靜態(tài)新聞列表自動(dòng)生成代碼...
    2007-06-06
  • php使用curl打開(kāi)https網(wǎng)站的方法

    php使用curl打開(kāi)https網(wǎng)站的方法

    這篇文章主要介紹了php使用curl打開(kāi)https網(wǎng)站的方法,涉及php使用curl連接網(wǎng)站及獲取信息的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • 淺談PHP無(wú)限極分類原理

    淺談PHP無(wú)限極分類原理

    這篇文章主要介紹了PHP無(wú)限極分類原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評(píng)論

嘉禾县| 鸡泽县| 佛教| 丹东市| 巫溪县| 邵阳县| 繁昌县| 襄汾县| 广汉市| 和林格尔县| 印江| 武定县| 邵阳市| 高淳县| 昌黎县| 徐州市| 中超| 昭苏县| 娄烦县| 连江县| 卓资县| 磐石市| 林芝县| 来安县| 岳普湖县| 桦川县| 京山县| 和林格尔县| 固镇县| 军事| 吉木萨尔县| 偃师市| 勃利县| 报价| 文昌市| 扶绥县| 正镶白旗| 汝阳县| 盐津县| 胶南市| 舒兰市|