可以做樹狀結構,先查詢第一層,然后當展開第二層
創新互聯是一家集網站建設,洛浦企業網站建設,洛浦品牌網站建設,網站定制,洛浦網站建設報價,網絡營銷,網絡優化,洛浦網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。
的時候,用ajax去查詢下一層的信息,如果感覺慢的
話可以給表做索引,也可以做分表處理,幾十萬不是
太大的數據
/**
*?遞歸實現無限極分類
*?@param?$array?分類數據
*?@param?$pid?父ID
*?@param?$level?分類級別
*?@return?$list?分好類的數組?直接遍歷即可?$level可以用來遍歷縮進
*/
function?getTree($array,?$pid?=0,?$level?=?0){
//聲明靜態數組,避免遞歸調用時,多次聲明導致數組覆蓋
static?$list?=?[];????????foreach?($array?as?$key?=?$value){????????????//第一次遍歷,找到父節點為根節點的節點?也就是pid=0的節點
if?($value['pid']?==?$pid){????????????????//父節點為根節點的節點,級別為0,也就是第一級
$value['level']?=?$level;????????????????//把數組放到list中
$list[]?=?$value;????????????????//把這個節點從數組中移除,減少后續遞歸消耗
unset($array[$key]);????????????????//開始遞歸,查找父ID為該節點ID的節點,級別則為原級別+1
getTree($array,?$value['id'],?$level+1);
}
}
$subs = array();
表示定義并初始化一個數組,
這樣后面的循環里就可以對這個數組進行操作,比如添加數據,
不加也能正常工作,但是不推薦,
初始化變量是一個良好的開發習慣
問題太過籠統,給你一個無限極分類數據處理的一種解決方案吧
表結構
id int 主鍵
fid int 父級id, 頂級分類的fid設為0, 其它級別的分類的fid值為其父級分類的id
name char 分類名稱
若是要顯示整個分類列表,那么你讀取整個表, 形成一個這樣結構的數組
$list = array();
while( $row = mysql_fetch_assoc($ret) ){
if( !isset($list[$row['fid']]) ) $list[$ret['fid']] = array();
$list[$ret['fid']][$ret['id']] = $row;
}
輸出時用個遞歸就可以了, 把它轉換成json,用js來做樹形菜單那也很好控制
若是查某個分類下的子分類,那查詢很簡單,就不說了
分享名稱:php數據庫遞歸無限分類 php數據庫遞歸無限分類的方法
網站地址:http://m.newbst.com/article26/dogpscg.html
成都網站建設公司_創新互聯,為您提供網站制作、響應式網站、網站導航、手機網站建設、App設計、網頁設計公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯