亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

php語言

php實(shí)現(xiàn)無限級(jí)分類實(shí)現(xiàn)代碼

時(shí)間:2024-07-03 23:01:17 php語言 我要投稿
  • 相關(guān)推薦

php實(shí)現(xiàn)無限級(jí)分類實(shí)現(xiàn)代碼

  開始以為這樣的功能似乎很難,之前也做過一個(gè)百科的東西,其中也涉及到了分類的功能,不過不是無限級(jí)的分類,而是簡(jiǎn)單的實(shí)現(xiàn)了固定的三級(jí)分類,當(dāng)時(shí)是自己設(shè)計(jì)的,想在想起來實(shí)現(xiàn)方法太土了,其實(shí)三級(jí)分類也只是無限級(jí)分類的一種特殊情況而已嘛。經(jīng)過一段時(shí)間考慮,已經(jīng)有了一些眉目,到網(wǎng)上一查,原來這樣的東西鋪天蓋地,呵呵。其實(shí)無限級(jí)下拉列表功能是很簡(jiǎn)單的,無非就是用一個(gè)遞歸算法就好啦。

  首先要設(shè)計(jì)數(shù)據(jù)庫,需要建一個(gè)表,里面存儲(chǔ)分類信息,至少需要3個(gè)字段,第一個(gè)是主鍵(ID),第二個(gè)是父級(jí)分類ID(parentid),第三個(gè)是分類的名稱(classname)?赡艿囊环N效果是:

  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í)分類,沒有上級(jí)分類,所以父類ID(PARENTID)的值是0,表示初級(jí)分類,依次類推便實(shí)現(xiàn)了無限級(jí)分類。最終的效果是:

  ├一級(jí)分類A

  ├─┴二級(jí)分類A

  ├─┴二級(jí)分類B

  ├一級(jí)分類B

  然后就是程序,這里以PHP作為描述語言,可以很方便的改成其他語言,因?yàn)樵硐嗨,就是一個(gè)遞歸而已。

  復(fù)制代碼 代碼如下:

  <?php

  $dbhost = "localhost"; // 數(shù)據(jù)庫主機(jī)名

  $dbuser = "root"; // 數(shù)據(jù)庫用戶名

  $dbpd = "123456"; // 數(shù)據(jù)庫密碼

  $dbname = "test"; // 數(shù)據(jù)庫名

  mysql_connect($dbhost,$dbuser,$dbpd); //連接主機(jī)

  mysql_select_db($dbname); //選擇數(shù)據(jù)庫

  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)用,也能大幅的提高效率。

【php實(shí)現(xiàn)無限級(jí)分類實(shí)現(xiàn)代碼】相關(guān)文章:

PHP中如何實(shí)現(xiàn)crontab代碼05-30

php的curl實(shí)現(xiàn)get和post的代碼07-07

PHP實(shí)現(xiàn)大文件上傳源代碼10-21

php代碼如何實(shí)現(xiàn)命令行執(zhí)行05-19

Java 隊(duì)列實(shí)現(xiàn)原理及簡(jiǎn)單實(shí)現(xiàn)代碼09-13

java利用反射實(shí)現(xiàn)動(dòng)態(tài)代理實(shí)現(xiàn)代碼10-08

php無限分類方法講解10-06

PHP頁面跳轉(zhuǎn)實(shí)現(xiàn)技巧09-19

PHP實(shí)現(xiàn)簡(jiǎn)易blog的制作10-27

PHP中多態(tài)如何實(shí)現(xiàn)09-04