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程序的方法
Mar 09 PHP
UCenter中的一个可逆加密函数authcode函数代码
Jul 20 PHP
php简单提示框alert封装函数
Aug 08 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
Nov 07 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
Jun 18 PHP
php+mysql实现用户注册登陆的方法
Jan 03 PHP
php array_merge函数使用需要注意的一个问题
Mar 30 PHP
php中文验证码实现方法
Jun 18 PHP
PHP版本常用的排序算法汇总
Dec 20 PHP
py文件转exe时包含paramiko模块出错解决方法
Aug 12 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
Sep 22 PHP
phpstudy的php版本自由修改的方法
Oct 18 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
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
webpack搭建vue 项目的步骤
2017/12/27 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
序列化模块json代码实例详解
2020/03/03 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
2020/06/16 Javascript
vue实现自定义多选按钮
2020/07/16 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
Python lxml模块安装教程
2015/06/02 Python
Python的多态性实例分析
2015/07/07 Python
scrapy爬虫完整实例
2018/01/25 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
python pickle存储、读取大数据量列表、字典数据的方法
2019/07/07 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
通过python实现windows桌面截图代码实例
2020/01/17 Python
pycharm设置当前工作目录的操作(working directory)
2020/02/14 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
教导处工作制度
2014/01/18 职场文书
放飞蜻蜓反思
2014/02/05 职场文书
党校个人自我鉴定范文
2014/03/28 职场文书
老师对学生的评语
2014/04/18 职场文书
实习评语大全
2014/04/26 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
2014年物流工作总结
2014/11/25 职场文书
2015年爱国卫生工作总结
2015/04/22 职场文书
2015年质检工作总结
2015/05/04 职场文书
幼儿园六一儿童节开幕词
2016/03/04 职场文书