PHP 無限分類 下拉列表實現

2021-07-27 11:55:11 字數 2236 閱讀 3705

今天在這簡單總結一下php裡無限分類的用法,當然在實際專案或者業務中,是一定結合著資料庫來完成的,這裡我是在做mvc架構練習中,封裝了無限分類的model類來完成的,糾結了一段時間,所以特此寫blog總結,無限分類的入門理解

什麼是無限級分類?

無限級分類是一種分類技巧,例如部門組織,文章分類,學科分類等常用到無限級分類,將其簡單理解成分類就好了。其實我們仔細想一下,生活中的分類簡直太多了,中國34個省,每個省有市,有區,這就是無限分類。

無限級分類原理簡介

無限分類好像很難操作一樣,實際上原理是非常簡單的 ,就是遞迴函式的原理,無限分類不僅僅需要**的巧妙性,也要依託資料庫設計的合理性。要滿足無限級分類,資料庫需要有兩個必須的字段,id,pid。id用來標識自身,而pid則是用來表明父級id。也就是說,每個分類記錄不僅描述了自身,還描述了與其關心最為緊密的另乙個id。當然這是最簡單的資料庫製表方法可以實現的。下面我們舉例

資料庫簡單的**搭建,這裡相信大家都會。。

這是最簡單的資料表模式,主要就是pid,父親的id,以小公尺的產品舉例,可以看到大致只有2級的分類。

接下來熟悉mysql和php的朋友們肯定知道了,我們可以連線資料庫,通過方法得到乙個資源陣列,也就是乙個二維陣列$array.

我這裡是用自己封裝的乙個db類,提取得到陣列

入門的大家,也可以先面向過程,提取

**類的提取**

/*** 正常所有商品分類展示,得到乙個陣列集合

*@return array

*/public

function

show

() return

$arr;

}**連線提取**

<?php

require_once('config.php');

//連線資料庫

$con = @mysql_connect(host,username,password) or

die('連線資料庫失敗!');

//選擇資料庫

@mysql_select_db("db_info");

//定義字符集

mysql_query("set names utf8");

?>

那麼我們此次的目的是得到什麼呢?沒錯,就是比較常用的乙個下拉列表,在後台管理的時候,常會用到,我這邊也是用封裝的類提取的,我會簡單講一下.

我們的目標:

在上面我們用得到的二維陣列,進行乙個簡單的陣列變換操作即可

public

function

getlist

(&$result=array(),$pid=0,$spac=0)

}return

$result;

}

我這用到的是乙個類方法,直接當作函式來理解即可

傳入三個可選引數,乙個引用的陣列引數,乙個預設的pid,乙個空格符計數

原理:

遍歷這個這個二維陣列,當它的父級pid和頂級0相同時候,提取陣列名字,重新編輯,加上字首,放回去,然後再自己呼叫自己,完成一次遞迴,到下一次,如果有下一級別的pid,則繼續呼叫,這樣就能簡單實現效果,得到乙個樹形結構的新的二維陣列$result!

最後我再將這個二維陣列進行加工,放在下拉列表的標籤裡,遍歷輸出字串到前台,或者html結構中,就可以完成上面我們要的效果了!

public

function

displaylist

($id=0)";

}else";}}

return

$str;

}else";

}return

$str;}}

這是最簡答級別的無限分類技術,當然在資料龐大的時候,會有其他的方法可以幫助我們實現不同的效果,我這裡是在做mvc架構搭建時候,用smarty模版展示,遇到的無限分類小問題,在此解決,深刻理解,並分享給大家,僅供參考學習。

php分類目錄下拉列表(遞迴 無限分類)

1.在catalog類裡面 級聯顯示 分類目錄遞迴列表 返回父類的所有子類 categorylist 引用傳值返回 const show select 請選擇 public function showallcategory categorylist,category,parentid 0,separ...

php實現無限分類

access public param pid 節點的id param array 返回該節點的所有後代節點 public function list cate pid 0 access private param arr array 要遍歷的陣列 param pid 節點的pid,預設為0,表示從...

PHP實現無限分類

無限分類 遞迴無限級分類是一種設計技巧,在開發中經常使用,例如 目錄 部門結構 文章分類。筆者覺得它在對於設計表的層級結構上面發揮很大的作用,比如大家在一些平台上面,填寫邀請人,它就是一種上下級的關係,上級會有多個下級,下級又會有自己的分支,大多數都是利用遞迴的思想去實現。話不多說,首先來溫故一下遞...