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

WBOY
リリース: 2016-05-29 11:47:24
オリジナル
1127 人が閲覧しました

本实例讲解了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');

ログイン後にコピー

数据库连接:

<&#63;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());
&#63;>

ログイン後にコピー

主函数:

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&#63;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.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!