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 和 XML: 使用expat函数(三)
Oct 09 PHP
dedecms防止FCK乱格式化你的代码的修改方法
Mar 17 PHP
上传文件先创建目录 再上传到目录里面去
Dec 29 PHP
php使HTML标签自动补全闭合函数代码
Oct 04 PHP
CodeIgniter模板引擎使用实例
Jul 15 PHP
PHP将回调函数作用到给定数组单元的方法
Aug 19 PHP
PHP中SESSION的注销与清除
Apr 16 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
Mar 21 PHP
基于PHP实现短信验证码接口(容联运通讯)
Sep 06 PHP
php生成二维码图片方法汇总
Dec 17 PHP
Yii框架模拟组件调用注入示例
Nov 11 PHP
laravel7学习之无限级分类的最新实现方法
Sep 30 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应用提速面面观
2006/10/09 PHP
PHP中的正规表达式(一)
2006/10/09 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
详细讲解JS节点知识
2010/01/31 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
javascript 主动派发事件总结
2011/08/09 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
2018/11/13 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
详解mpvue实现对苹果X安全区域的适配
2019/07/31 Javascript
Vue项目中Api的组织和返回数据处理的操作
2019/11/04 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
[03:48]DOTA2完美大师赛主赛事第二日精彩集锦
2017/11/24 DOTA
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
Python简单生成随机数的方法示例
2018/03/31 Python
利用Python检测URL状态
2019/07/31 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
三维科技面试题
2013/07/27 面试题
电信专业毕业生推荐信
2013/11/18 职场文书
学术会议主持词
2014/03/17 职场文书
质量在我心中演讲稿
2014/09/02 职场文书
2014年党风廉政工作总结
2014/12/03 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
新郎结婚保证书
2015/02/26 职场文书
2015年重阳节活动总结
2015/03/24 职场文书