PHP實(shí)現(xiàn)無(wú)限極分類圖文教程
一般來(lái)說(shuō)實(shí)現(xiàn)無(wú)限極分類都是使用遞歸或者迭代的方式,小伙伴們看下本文的實(shí)現(xiàn)方式吧。
1,數(shù)據(jù)庫(kù)設(shè)計(jì):


2,代碼:
* @author koma
* @todo PHP無(wú)限極分類
*/ $cn = mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('t', $cn) or die(mysql_error());
mysql_query('set names utf8');
/**
* 從頂層逐級(jí)向下獲取子類
* @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); //進(jìn)入子類之前深度+1 --$deep; //從子類退出之后深度-1 }
return $lists;
}
function displayLists($pid = 0, $selectid = 1) {
$result = getLists($pid);
$str = '<select>';
foreach ( $result as $item ) {
$selected = "";
if ( $selectid == $item['id'] ) {
$selected = 'selected';
}
$str .= '<option '.$selected.'>'.$item['catename'].'</option>';
}
return $str .= '</select>';
} /**
* 從子類開始逐級(jí)向上獲取其父類
* @param number $cid
* @param array $category
* @return array:
*/ function getCategory($cid, &$category = array()) {
$sql = 'SELECT * FROM category WHERE id='.$cid.' LIMIT 1';
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
if ( $row ) {
$category[] = $row;
getCategory($row['pid'], $category);
}
krsort($category); //逆序,達(dá)到從父類到子類的效果 return $category;
}
function displayCategory($cid) {
$result = getCategory($cid);
$str = "";
foreach ( $result as $item ) {
$str .= '<a href="'.$item['id'].'">'.$item['catename'].'</a>>';
}
return substr($str, 0, strlen($str) - 1);
}
echo displayLists(0, 3);
echo displayCategory(13);
3,效果圖:

是不是很簡(jiǎn)單呢,小伙伴們可以直接拿去用哈,不收版權(quán)費(fèi)^_^
相關(guān)文章
PHP實(shí)現(xiàn)權(quán)限管理功能示例
下面小編就為大家?guī)?lái)一篇PHP實(shí)現(xiàn)權(quán)限管理功能示例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
php+iframe實(shí)現(xiàn)隱藏?zé)o刷新上傳文件
首先ajax不能上傳文件,這誤導(dǎo)了我有段時(shí)間,今晚睡不著就照著說(shuō)明做了個(gè)無(wú)刷新上傳文件2012-02-02
解決laravel5.4下的group by報(bào)錯(cuò)的問(wèn)題
今天小編就為大家分享一篇解決laravel5.4下的group by報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
laravel 輸出最后執(zhí)行sql 附:whereIn的使用方法
今天小編就為大家分享一篇laravel 輸出最后執(zhí)行sql 附:whereIn的使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
php中輸出json對(duì)象的值(實(shí)現(xiàn)方法)
下面小編就為大家分享一篇php中輸出json對(duì)象的值(實(shí)現(xiàn)方法),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
PHP程序中使用adodb連接不同數(shù)據(jù)庫(kù)的代碼實(shí)例
這篇文章主要介紹了PHP程序中使用adodb連接不同數(shù)據(jù)庫(kù)的代碼實(shí)例,具體的用法示例中用switch語(yǔ)句寫了一個(gè)匯總式的支持,需要的朋友可以參考下2015-12-12
CodeIgniter多語(yǔ)言實(shí)現(xiàn)方法詳解
這篇文章主要介紹了CodeIgniter多語(yǔ)言實(shí)現(xiàn)方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了CodeIgniter實(shí)現(xiàn)多語(yǔ)言的具體步驟、實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-01-01

