找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 912|回复: 0
打印 上一主题 下一主题

php实现面包屑导航例子分享

[复制链接]

2487

主题

2487

帖子

7391

积分

论坛元老

Rank: 8Rank: 8

积分
7391
跳转到指定楼层
楼主
发表于 2018-2-14 05:40:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            本实例讲解了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');
数据库连接:
主函数:
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 "";
foreach($res as $key=>$val) {
  echo "{$val['catename']}";
}
echo "";
echo "
";
// 封装方法
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.= "[url={$link}{$v[]{$v['catename']}[/url] > ";
  }
  return $str;
}
echo displayCatePath(4);
效果:

以上就是php实现面包屑导航的详细步骤,希望对大家学习php程序设计有所帮助。
            
            
您可能感兴趣的文章:
  • jquery 面包屑导航 具体实现
  • thinkphp实现面包屑导航(当前位置)例子分享
  • php可应用于面包屑导航的递归寻找家谱树实现方法
  • php可应用于面包屑导航的迭代寻找家谱树实现方法
  • Bootstrap组件学习之导航、标签、面包屑导航(精品)
  • Bootstrap CSS组件之面包屑导航(breadcrumb)
  • BootStrap学习笔记之nav导航栏和面包屑导航
  • 面包屑导航详解
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端