Welcome 微信登录

首页 / 网页编程 / PHP / php实现面包屑导航例子分享

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