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

5年以前  |  阅读数:1196 次  |  编程语言: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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
贪吃蛇
文件下载
双位运算符
发送邮件
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
提取后缀名
年的日历图
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例