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 相关文章推荐
动态网站web开发 PHP、ASP还是ASP.NET
Oct 09 PHP
PHPlet在Windows下的安装
Oct 09 PHP
PHP filter_var() 函数 Filter 函数
Apr 25 PHP
模板引擎smarty工作原理以及使用示例
May 25 PHP
php目录拷贝实现方法
Jul 10 PHP
php实现通过cookie换肤的方法
Jul 13 PHP
php用户注册信息验证正则表达式
Nov 12 PHP
php发送短信验证码完成注册功能
Nov 24 PHP
分享PHP守护进程类
Dec 30 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
Feb 08 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
May 02 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输出图像imagegif、imagejpeg与imagepng函数用法分析
2016/11/14 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
2017/02/07 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
php-msf源码详解
2017/12/25 PHP
关于JavaScript的with 语句的使用方法
2011/05/09 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
2013/12/28 Javascript
javascript实现des解密加密全过程
2014/04/03 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
微信小程序 跳转方式总结
2017/04/20 Javascript
jquery.masonry瀑布流效果
2017/05/25 jQuery
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
微信小程序switch组件使用详解
2018/01/31 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
js编写简易的计算器
2020/07/29 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
[01:32:22]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第一场 2月5日
2021/03/11 DOTA
python万年历实现代码 含运行结果
2017/05/20 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
Python根据成绩分析系统浅析
2019/02/11 Python
python f-string式格式化听语音流程讲解
2019/06/18 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
Python 合并多个TXT文件并统计词频的实现
2019/08/23 Python
使用pytorch和torchtext进行文本分类的实例
2020/01/08 Python
英国奢侈品网站:MatchesFashion
2016/12/16 全球购物
酒店个人培训自我鉴定
2013/12/11 职场文书
青春励志演讲稿
2014/04/29 职场文书
个人欠款担保书
2014/05/20 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android