您好,登錄后才能下訂單哦!
如何在php項目中實現一個面包屑導航功能?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
path表示所有的祖先id,fullpath表示所有的祖先id和本身id
-- -- 表的結構 `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 ;
數據
-- -- 轉存表中的數據 `tp_likecate` -- INSERT INTO `tp_likecate` (`id`, `catename`, `path`, `fullpath`) VALUES (1, '手機', '', ',1'), (2, '功能手機', '1', '1,2'), (3, '老人手機', '1,2', '1,2,3'), (4, '兒童手機', '1,2', '1,2,4'), (5, '智能手機', '1', '1,5'), (6, 'android手機', '1,5', '1,5,6'), (7, 'IOS手機', '1,5', '1,5,7'), (8, 'WinPhoto手機', '1,5', '1,5,8');
數據庫連接:
<?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()); ?>
主函數:
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字符串轉換為數組 implode數組轉換為字符串 $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; } // 加上了鏈接的參數 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項目中實現一個面包屑導航功能的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。