php實現(xiàn)面包屑導(dǎo)航例子分享
本實例講解了php實現(xiàn)面包屑導(dǎo)航的方法,面包屑導(dǎo)航在項目非常實用,在此處就寫一個這方面的實現(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ù)庫連接:
<?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; }
輸出:
// 簡單輸出 $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實現(xiàn)面包屑導(dǎo)航的詳細(xì)步驟,希望對大家學(xué)習(xí)php程序設(shè)計有所幫助。
- 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)航的迭代尋找家譜樹實現(xiàn)方法
- php可應(yīng)用于面包屑導(dǎo)航的遞歸尋找家譜樹實現(xiàn)方法
- thinkphp實現(xiàn)面包屑導(dǎo)航(當(dāng)前位置)例子分享
- jquery 面包屑導(dǎo)航 具體實現(xiàn)
- 面包屑導(dǎo)航詳解
相關(guān)文章
phpStudy2016 配置多個域名期間遇到的問題小結(jié)
這篇文章主要介紹了phpStudy2016 配置多個域名期間遇到的問題小結(jié),需要的朋友可以參考下2017-10-10Laravel5.6框架使用CKEditor5相關(guān)配置詳解
這篇文章主要介紹了Laravel5.6框架使用CKEditor5相關(guān)配置,結(jié)合實例形式詳細(xì)分析了Laravel5.6框架整合CKEditor5編輯器相關(guān)操作技巧與注意事項,需要的朋友可以參考下2019-07-07php使用Session和文件統(tǒng)計在線人數(shù)
這篇文章主要介紹了php使用Session和文件統(tǒng)計在線人數(shù),本文直接給出實例代碼,需要的朋友可以參考下2015-07-07laravel 5.5 關(guān)閉token的3種實現(xiàn)方式
今天小編就為大家分享一篇laravel 5.5 關(guān)閉token的3種實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10如何使用純PHP實現(xiàn)定時器任務(wù)(Timer)
本文主要介紹了如何使用純PHP實現(xiàn)純粹的定時器任務(wù),且能適應(yīng)認(rèn)識任務(wù)業(yè)務(wù)需求,需要的朋友可以參考下2015-07-07