<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. php語言

    php實現無限級分類實現代碼

    時間:2025-04-10 11:46:05 php語言 我要投稿
    • 相關推薦

    php實現無限級分類實現代碼

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

      首先要設計數據庫,需要建一個表,里面存儲分類信息,至少需要3個字段,第一個是主鍵(ID),第二個是父級分類ID(parentid),第三個是分類的名稱(classname)。可能的一種效果是:

      ID PARENTID CLASSNAME

      1 0 一級分類A

      2 0 一級分類B

      3 1 二級分類A

      4 1 二級分類B

      主要思路:首先看第三行和第四行,父類ID(PARENTID)的值是1,表示屬于id=1這個類的子類,而,一,二兩行因為是一級分類,沒有上級分類,所以父類ID(PARENTID)的值是0,表示初級分類,依次類推便實現了無限級分類。最終的效果是:

      ├一級分類A

      ├─┴二級分類A

      ├─┴二級分類B

      ├一級分類B

      然后就是程序,這里以PHP作為描述語言,可以很方便的改成其他語言,因為原理相似,就是一個遞歸而已。

      復制代碼 代碼如下:

      <?php

      $dbhost = "localhost"; // 數據庫主機名

      $dbuser = "root"; // 數據庫用戶名

      $dbpd = "123456"; // 數據庫密碼

      $dbname = "test"; // 數據庫名

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

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

      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)) {

      // 縮進顯示節點名稱

      echo $tag.$row['classname'] . "<br/>";

      //再次調用這個函數顯示子節點的子節點

      display_tree($tag."─┴",$row['id']);

      }

      }

      ?>

      這樣遞歸方法,對于大量的子欄目是個負擔,一些成熟的cms系統。都是生產數組方便調用,也能大幅的提高效率。

    【php實現無限級分類實現代碼】相關文章:

    PHP實現無限級分類的方法07-14

    php+mysql實現無限分類實例詳解07-23

    PHP滾動日志的代碼實現05-17

    PHP中如何實現crontab代碼05-30

    php的curl實現get和post的代碼07-07

    php進度條實現代碼04-05

    PHP實現大文件上傳源代碼05-03

    PHP圖片文件怎么上傳實現代碼01-25

    php代碼如何實現命令行執行05-19

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人