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下常用正则表达式整理
Oct 26 PHP
PHP获取MAC地址的函数代码
Sep 11 PHP
php获得url参数中具有&amp;的值的方法
Mar 05 PHP
destoon利用Rewrite规则设置网站安全
Jun 21 PHP
PHPMailer发送HTML内容、带附件的邮件实例
Jul 01 PHP
PHP的拦截器实例分析
Nov 03 PHP
PHP中mysqli_affected_rows作用行数返回值分析
Dec 26 PHP
PHP中使用file_get_contents post数据代码例子
Feb 13 PHP
PHP创建多级目录的两种方法
Oct 28 PHP
PHP实现随机生成水印图片功能
Mar 22 PHP
PHP实现SMTP邮件的发送实例
Sep 27 PHP
浅谈PHPANALYSIS提取关键字
Mar 08 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 substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
javascript数组的扩展实现代码集合
2008/06/01 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
javascript时间函数大全
2014/06/30 Javascript
javascript相关事件的几个概念
2015/05/21 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
AngularJS基础 ng-include 指令简单示例
2016/08/01 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
2017/06/22 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
vue展示dicom文件医疗系统的实现代码
2018/08/27 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python open读写文件实现脚本
2008/09/06 Python
Django中实现一个高性能计数器(Counter)实例
2014/07/09 Python
Python数据结构之Array用法实例
2014/10/09 Python
在Django中同时使用多个配置文件的方法
2015/07/22 Python
itchat和matplotlib的结合使用爬取微信信息的实例
2017/08/25 Python
浅谈python数据类型及类型转换
2017/12/18 Python
flask入门之表单的实现
2018/07/18 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
高级销售员求职信
2013/10/25 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
梅花魂教学反思
2014/04/25 职场文书
政府法律服务方案
2014/06/14 职场文书
应届大学生自荐书
2014/06/17 职场文书
离职证明标准格式
2014/09/15 职场文书
2015年十月一日放假通知
2015/08/18 职场文书
2016年世界人口日宣传活动总结
2016/04/05 职场文书
React 高阶组件HOC用法归纳
2021/06/13 Javascript
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript
使用MybatisPlus打印sql语句
2022/04/22 SQL Server