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 相关文章推荐
php csv操作类代码
Dec 14 PHP
php数据库密码的找回的步骤
Jan 12 PHP
理解php Hash函数,增强密码安全
Feb 25 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
Nov 02 PHP
PHP 类相关函数的使用详解
May 10 PHP
thinkphp 多表 事务详解
Jun 17 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
PHP数组生成XML格式数据的封装类实例
Nov 10 PHP
PHP中include和require的区别实例分析
May 07 PHP
PHP批量删除jQuery操作
Jul 23 PHP
PHP+jQuery实现双击修改table表格功能示例
Feb 21 PHP
laravel框架创建授权策略实例分析
Nov 22 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 数字左侧自动补0
2008/03/31 PHP
PHP程序员编程注意事项
2008/04/10 PHP
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
2011/07/18 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
php中动态变量用法实例
2015/06/10 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
JS正则表达式大全(整理详细且实用)
2013/11/14 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
js数组去重的5种算法实现
2015/11/04 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
微信小程序Redux绑定实例详解
2017/06/07 Javascript
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
浅谈高大上的微信小程序中渲染html内容—技术分享
2018/10/25 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
js实现列表按字母排序
2020/08/11 Javascript
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
进一步理解Python中的函数编程
2015/04/13 Python
Python中的高级函数map/reduce使用实例
2015/04/13 Python
读写json中文ASCII乱码问题的解决方法
2016/11/05 Python
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
Python实现矩阵加法和乘法的方法分析
2017/12/19 Python
Keds官方网站:购买帆布运动鞋和经典皮鞋
2016/11/12 全球购物
地理科学专业毕业生求职信
2013/10/15 职场文书
禁烟标语大全
2014/06/11 职场文书
社区文艺活动方案
2014/08/19 职场文书
旷课检讨书500字
2014/10/14 职场文书
大学四年个人总结
2015/03/03 职场文书
护理自荐信
2019/05/14 职场文书
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python
vue使用refs获取嵌套组件中的值过程
2022/03/31 Vue.js