首頁 >後端開發 >PHP問題 >php怎麼實現無限極分類

php怎麼實現無限極分類

藏色散人
藏色散人原創
2021-03-26 09:32:092633瀏覽

php實現無限極分類的方法:先建立一個PHP範例檔案;然後寫邏輯程式碼;接著從頂層逐級向下取得子類別;最後從子類別開始逐級向上取得其父類別即可實現無限極分類。

php怎麼實現無限極分類

本文操作環境:windows7系統、PHP7.1版,DELL G3電腦

PHP實作無限極分類圖文教學

一般來說實現無限極分類都是使用遞迴或迭代的方式,小夥伴們看下本文的實作方式吧。

1,資料庫設計:

#2,程式碼:

##程式碼如下:

/** 
 * @author koma 
 * @todo   PHP无限极分类 
 */ $cn = mysql_connect('localhost', 'root', '') or die(mysql_error()); 
mysql_select_db('t', $cn) or die(mysql_error()); 
mysql_query('set names utf8'); 
 /** 
 * 从顶层逐级向下获取子类 
 * @param number $pid 
 * @param array $lists 
 * @param number $deep 
 * @return array 
 */ function getLists($pid = 0, &$lists = array(), $deep = 1) { 
    $sql = 'SELECT * FROM category WHERE pid='.$pid; 
    $res = mysql_query($sql); 
    while ( ($row = mysql_fetch_assoc($res)) !== FALSE ) { 
        $row['catename'] = str_repeat('   ', $deep).'|---'.$row['catename']; 
        $lists[] = $row; 
        getLists($row['id'], $lists, ++$deep); //进入子类之前深度+1         --$deep; 
        //从子类退出之后深度-1    
         } 
    return $lists; 
} 
 function displayLists($pid = 0, $selectid = 1) { 
    $result = getLists($pid); 
    $str = &#39;<select>&#39;; 
    foreach ( $result as $item ) { 
        $selected = ""; 
        if ( $selectid == $item[&#39;id&#39;] ) { 
            $selected = &#39;selected&#39;; 
        } 
        $str .= &#39;<option &#39;.$selected.&#39;>&#39;.$item[&#39;catename&#39;].&#39;</option>&#39;; 
    } 
    return $str .= &#39;</select>&#39;; 
} /** 
 * 从子类开始逐级向上获取其父类 
 * @param number $cid 
 * @param array $category 
 * @return array: 
 */ function getCategory($cid, &$category = array()) { 
    $sql = &#39;SELECT * FROM category WHERE id=&#39;.$cid.&#39; LIMIT 1&#39;; 
    $result = mysql_query($sql); 
    $row = mysql_fetch_assoc($result); 
    if ( $row ) { 
        $category[] = $row; 
        getCategory($row[&#39;pid&#39;], $category); 
    } 
    krsort($category); //逆序,达到从父类到子类的效果     return $category; 
} 
 function displayCategory($cid) { 
    $result = getCategory($cid); 
    $str = ""; 
    foreach ( $result as $item ) { 
        $str .= &#39;<a href="&#39;.$item[&#39;id&#39;].&#39;">&#39;.$item[&#39;catename&#39;].&#39;</a>>&#39;; 
    } 
    return substr($str, 0, strlen($str) - 1); 
} 
 echo displayLists(0, 3); 
 echo displayCategory(13);

3,效果圖:

是不是很簡單呢,小夥伴可以直接拿去用哈,不收版權費。

【推薦學習:

PHP影片教學#

以上是php怎麼實現無限極分類的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn