您好,登錄后才能下訂單哦!
本篇文章為大家展示了使用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 = '<select>';
foreach ( $result as $item ) {
$selected = "";
if ( $selectid == $item['id'] ) {
$selected = 'selected';
}
$str .= '<option '.$selected.'>'.$item['catename'].'</option>';
}
return $str .= '</select>';
} /**
* 從子類開始逐級向上獲取其父類
* @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); //逆序,達到從父類到子類的效果 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);
上述內容就是使用PHP怎么實現一個無限極分類功能,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。