首页 > 开发 > PHP > 正文

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

2024-05-04 22:33:32
字体:
来源:转载
供稿:网友

本实例讲解了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);            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表