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


Posted in PHP onDecember 19, 2015

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

PHP 相关文章推荐
Phpbean路由转发的php代码
Jan 10 PHP
php下将多个数组合并成一个数组的方法与实例代码
Feb 03 PHP
php实现mysql封装类示例
May 07 PHP
ThinkPHP 3.2 数据分页代码分享
Oct 14 PHP
php静态文件生成类实例分析
Jan 03 PHP
php实现随机生成易于记忆的密码
Jun 19 PHP
PHP6新特性分析
Mar 03 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
Mar 14 PHP
ThinkPHP中session函数详解
Sep 14 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
Mar 25 PHP
PHP Swoole异步读取、写入文件操作示例
Oct 24 PHP
php实现倒计时效果
Dec 19 #PHP
Thinkphp实现自动验证和自动完成
Dec 19 #PHP
详解WordPress中过滤链接与过滤SQL语句的方法
Dec 18 #PHP
基于ThinkPHP实现批量删除
Dec 18 #PHP
thinkphp实现163、QQ邮箱收发邮件的方法
Dec 18 #PHP
WordPress中注册菜单与调用菜单的方法详解
Dec 18 #PHP
讲解WordPress开发中一些常用的debug技巧
Dec 18 #PHP
You might like
php制作中间带自己定义图片二维码的方法
2014/01/27 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
php封装的验证码类分享
2017/02/26 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
JavaScript 对Cookie 操作的封装小结
2009/12/31 Javascript
actionscript与javascript的区别
2011/05/25 Javascript
jquery实现勾选复选框触发事件给input赋值
2015/02/01 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
vue.js入门教程之基础语法小结
2016/09/01 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
2017/01/11 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
详解JS中统计函数执行次数与执行时间
2018/09/04 Javascript
js中Generator函数的深入讲解
2019/04/07 Javascript
vue如何截取字符串
2019/05/06 Javascript
使用Angular material主题定义自己的组件库的配色体系
2019/09/04 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
寄语学生的话
2014/04/10 职场文书
小学生九一八纪念日83周年演讲稿500字
2014/09/17 职场文书
面试感谢信范文
2015/01/22 职场文书
立案决定书范文
2015/06/24 职场文书
文艺节目主持词
2015/07/06 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
企业法律事务工作总结
2015/08/11 职场文书
利用Python第三方库实现预测NBA比赛结果
2021/06/21 Python
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers