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基础知识:控制结构
Dec 13 PHP
php全局变量和类配合使用深刻理解
Jun 05 PHP
php生成excel列序号代码实例
Dec 24 PHP
使用PHP导出Redis数据到另一个Redis中的代码
Mar 12 PHP
Codeigniter注册登录代码示例
Jun 12 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
php使用正则表达式去掉html中的注释方法
Nov 03 PHP
PHP关键特性之命名空间实例详解
May 06 PHP
PHP获取数组中单列值的方法
Jun 10 PHP
PHP使用HTML5 FormData对象提交表单操作示例
Jul 02 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
Oct 11 PHP
如何用RabbitMQ和Swoole实现一个异步任务系统
May 29 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
BBS(php &amp; mysql)完整版(五)
2006/10/09 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
2014/05/09 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
js loading加载效果实现代码
2009/11/24 Javascript
JavaScript中去掉数组中的重复值的实现方法
2011/08/03 Javascript
js获取指定日期前后的日期代码
2013/08/20 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
对比分析json及XML
2014/11/28 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
2016/07/01 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
JS运算符简单用法示例
2020/01/19 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
如何用python写一个简单的词法分析器
2018/12/18 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
Python文件操作基础流程解析
2020/03/19 Python
为什么说python适合写爬虫
2020/06/11 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
Under Armour西班牙官网:美国知名的高端功能性运动品牌
2018/12/12 全球购物
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
廉政教育的心得体会
2014/09/01 职场文书
工伤事故赔偿协议书范文
2014/09/24 职场文书
护理专业自我评价
2015/03/11 职场文书
同乡会致辞
2015/07/30 职场文书
分享3个非常实用的 Python 模块
2022/03/03 Python