php實(shí)現(xiàn)面包屑導(dǎo)航例子分享
本實(shí)例講解了php實(shí)現(xiàn)面包屑導(dǎo)航的方法,面包屑導(dǎo)航在項(xiàng)目非常實(shí)用,在此處就寫(xiě)一個(gè)這方面的實(shí)現(xiàn)。

path表示所有的祖先id,fullpath表示所有的祖先id和本身id
-- -- 表的結(jié)構(gòu) `tp_likecate` -- CREATE TABLE IF NOT EXISTS `tp_likecate` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `catename` varchar(24) NOT NULL, `path` varchar(10) NOT NULL, `fullpath` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;
數(shù)據(jù)
-- -- 轉(zhuǎn)存表中的數(shù)據(jù) `tp_likecate` -- INSERT INTO `tp_likecate` (`id`, `catename`, `path`, `fullpath`) VALUES (1, '手機(jī)', '', ',1'), (2, '功能手機(jī)', '1', '1,2'), (3, '老人手機(jī)', '1,2', '1,2,3'), (4, '兒童手機(jī)', '1,2', '1,2,4'), (5, '智能手機(jī)', '1', '1,5'), (6, 'android手機(jī)', '1,5', '1,5,6'), (7, 'IOS手機(jī)', '1,5', '1,5,7'), (8, 'WinPhoto手機(jī)', '1,5', '1,5,8');
數(shù)據(jù)庫(kù)連接:
<?php
$db_host = 'localhost';
$db_user = 'root';
$db_password = '';
$db_name = 'test';
$con = mysql_connect($db_host, $db_user, $db_password) or die(mysql_error());
mysql_select_db($db_name, $con) or die(mysql_error());
mysql_query('set names utf8') or die(mysql_error());
?>
主函數(shù):
function likecate($path='') {
// concat() 連接字段
$sql = "select id,catename,path, concat(path,',',id) as fullpath from tp_likecate order by fullpath asc";
$res = mysql_query($sql);
$result = array();
while($row=mysql_fetch_assoc($res)) {
$deep = count(explode(',', trim($row['fullpath'], ','))); // explode字符串轉(zhuǎn)換為數(shù)組 implode數(shù)組轉(zhuǎn)換為字符串
$row['catename'] = @str_repeat(' ', $deep).'|--'.$row['catename'];
$result[] = $row;
}
return $result;
}
輸出:
// 簡(jiǎn)單輸出
$res = likecate();
echo "<select name='cate'>";
foreach($res as $key=>$val) {
echo "<option>{$val['catename']}</option>";
}
echo "</select>";
echo "<br />";
// 封裝方法
function getPathCate($cateid) {
$sql = "select *,concat(path, ',',id) fullpath from tp_likecate where id = $cateid";
$res = mysql_query($sql);
$row = mysql_fetch_assoc($res);
$ids = $row['fullpath'];
$sql = "select * from tp_likecate where id in($ids) order by id asc";
$res = mysql_query($sql);
$result = array();
while($row = mysql_fetch_assoc($res)) {
$result[] = $row;
}
return $result;
}
// 加上了鏈接的參數(shù)
function displayCatePath($cateid,$link='cate.php?cid=') { // 也可以組裝
$res = getPathCate($cateid);
$str = '';
foreach($res as $k=>$v) {
$str.= "<a href='{$link}{$v['id']}'>{$v['catename']}</a> > ";
}
return $str;
}
echo displayCatePath(4);
效果:

以上就是php實(shí)現(xiàn)面包屑導(dǎo)航的詳細(xì)步驟,希望對(duì)大家學(xué)習(xí)php程序設(shè)計(jì)有所幫助。
- BootStrap學(xué)習(xí)筆記之nav導(dǎo)航欄和面包屑導(dǎo)航
- Bootstrap CSS組件之面包屑導(dǎo)航(breadcrumb)
- Bootstrap組件學(xué)習(xí)之導(dǎo)航、標(biāo)簽、面包屑導(dǎo)航(精品)
- php可應(yīng)用于面包屑導(dǎo)航的迭代尋找家譜樹(shù)實(shí)現(xiàn)方法
- php可應(yīng)用于面包屑導(dǎo)航的遞歸尋找家譜樹(shù)實(shí)現(xiàn)方法
- thinkphp實(shí)現(xiàn)面包屑導(dǎo)航(當(dāng)前位置)例子分享
- jquery 面包屑導(dǎo)航 具體實(shí)現(xiàn)
- 面包屑導(dǎo)航詳解
相關(guān)文章
tp5(thinkPHP5)操作mongoDB數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了tp5(thinkPHP5)操作mongoDB數(shù)據(jù)庫(kù)的方法,結(jié)合實(shí)例形式簡(jiǎn)單分析了mongoDB數(shù)據(jù)庫(kù)及thinkPHP5連接、查詢MongoDB數(shù)據(jù)庫(kù)的基本操作技巧,需要的朋友可以參考下2018-01-01
Yii2簡(jiǎn)單實(shí)現(xiàn)給表單添加驗(yàn)證碼的方法
這篇文章主要介紹了Yii2簡(jiǎn)單實(shí)現(xiàn)給表單添加驗(yàn)證碼的方法,簡(jiǎn)單分析了Yii中控制器的相關(guān)設(shè)置、表單模型的創(chuàng)建及視圖的調(diào)用技巧,需要的朋友可以參考下2016-07-07
讓ThinkPHP支持大小寫(xiě)url地址訪問(wèn)的方法
這篇文章主要介紹了讓ThinkPHP支持大小寫(xiě)url地址訪問(wèn)的方法,是Windows環(huán)境下開(kāi)發(fā)ThinkPHP程序非常實(shí)用的技巧,需要的朋友可以參考下2014-10-10
PHP實(shí)現(xiàn)QQ登錄的開(kāi)原理和實(shí)現(xiàn)過(guò)程
本文主要給大家講述了PHP實(shí)現(xiàn)QQ登錄的開(kāi)原理以及相關(guān)的代碼實(shí)現(xiàn)過(guò)程,對(duì)此有興趣和需要的朋友參考下吧。2018-02-02
在 Laravel 6 中緩存數(shù)據(jù)庫(kù)查詢結(jié)果的方法
這篇文章主要介紹了在 Laravel 6 中緩存數(shù)據(jù)庫(kù)查詢結(jié)果的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
Laravel框架文件上傳功能實(shí)現(xiàn)方法示例
這篇文章主要介紹了Laravel框架文件上傳功能實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Laravel框架文件上傳相關(guān)步驟,包括配置、上傳功能實(shí)現(xiàn)技巧及相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-04-04
利用Fix Rss Feeds插件修復(fù)WordPress的Feed顯示錯(cuò)誤
這篇文章主要介紹了利用Fix Rss Feeds插件修復(fù)WordPress的Feed顯示錯(cuò)誤的方法,需要的朋友可以參考下2015-12-12

