php实现面包屑导航例子分享

时间:2021-05-26

本实例讲解了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('&nbsp;&nbsp;', $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实现面包屑导航的详细步骤,希望对大家学习php程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章