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 相关文章推荐
基于mysql的bbs设计(三)
Oct 09 PHP
让PHP支持页面回退的两种方法
Jan 10 PHP
用phpmyadmin更改mysql5.0登录密码
Mar 25 PHP
php隐藏实际地址的文件下载方法
Apr 18 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
Dec 31 PHP
Zend Framework教程之Application用法实例详解
Mar 14 PHP
PHP实现的方程求解示例分析
Nov 11 PHP
PHP 文件上传后端处理实用技巧方法
Jan 06 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
Apr 30 PHP
Yii2 queue的队列使用详解
Jul 19 PHP
在Laravel 的 Blade 模版中实现定义变量
Oct 14 PHP
PHP+MySql实现一个简单的留言板
Jul 19 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利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
PHP结合JQueryJcrop实现图片裁切实例详解
2014/07/24 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
五段实用的js高级技巧
2011/12/20 Javascript
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
jQuery插件pagewalkthrough实现引导页效果
2015/07/05 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
浅谈JavaScript的闭包函数
2016/12/08 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
原生JS实现简单的倒计时功能示例
2018/08/30 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
2018/09/30 Javascript
Vue基础学习之项目整合及优化
2019/06/02 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
Python中的作用域规则详解
2015/01/30 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
python编程之requests在网络请求中添加cookies参数方法详解
2017/10/25 Python
python numpy 一维数组转变为多维数组的实例
2018/07/02 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
python读取yaml文件后修改写入本地实例
2020/04/27 Python
python和go语言的区别是什么
2020/07/20 Python
Python如何使用input函数获取输入
2020/08/06 Python
python unichr函数知识点总结
2020/12/16 Python
init进程的作用
2012/04/12 面试题
2014年专项整治工作总结
2014/11/17 职场文书
责任书格式
2015/01/29 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
2016暑期师德培训心得体会
2016/01/09 职场文书
golang 实现并发求和
2021/05/08 Golang
Vertica集成Apache Hudi重磅使用指南
2022/03/31 Servers
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL