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中include()与require()的区别说明
Mar 10 PHP
php处理json时中文问题的解决方法
Apr 12 PHP
浅析php中json_encode()和json_decode()
May 25 PHP
php解析json数据实例
Aug 19 PHP
PHP和C#可共用的可逆加密算法详解
Oct 26 PHP
ThinkPHP框架里隐藏index.php
Apr 12 PHP
PHP实现统计在线人数功能示例
Oct 15 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
Nov 22 PHP
详解PHP文件的自动加载(autoloading)
Feb 04 PHP
django中的ajax组件教程详解
Oct 18 PHP
PHP小程序支付功能完整版【基于thinkPHP】
Mar 26 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
May 25 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 chr() ord()中文截取乱码问题解决方法
2008/09/08 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
解决yii2左侧菜单子级无法高亮问题的方法
2016/05/08 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
浅谈JavaScript中的字符编码转换问题
2015/07/07 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
2015/12/13 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
2016/10/18 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
AngularJS中的拦截器实例详解
2017/04/07 Javascript
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
2017/09/08 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
Python解析xml中dom元素的方法
2015/03/12 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
2018/02/08 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
Python+OpenCV感兴趣区域ROI提取方法
2019/01/10 Python
Python yield的用法实例分析
2020/03/06 Python
Python用access判断文件是否被占用的实例方法
2020/12/17 Python
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
澳大利亚领先的女帽及配饰公司:Morgan&Taylor
2019/12/01 全球购物
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
园林施工员岗位职责
2013/12/11 职场文书
产品推广策划方案
2014/05/10 职场文书
小学向国旗敬礼活动方案
2014/09/27 职场文书
受资助学生感谢信
2015/01/21 职场文书
公司会议开幕词
2016/03/03 职场文书