[英]Creating a “guide bar” like this, above a web page by php+mysql?
我想創建一個“指南欄”(我不知道它的正確名稱)。 我有一個名為cat
的表,其中包含以下數據:
catid catname parentid 1 news null 2 sport 1 3 health 1 4 tennis 2 5 football 2 6 soccer 5
我的頁面收到: $catid=6
,我想創建:
news>sport>football>soccer
首先從數據庫中獲取數據並構建一個數組
$q = mysql_query("SELECT catid, catname, parentid FROM cat");
$pages = array();
while($r = mysql_fetch_assoc($q)) {
$pages[$r['catid']] = array('catname' => $r['catname'], 'parentid' => $r['parentid']);
}
使用遞歸函數來構建面包屑:
function build_breadcrumbs($pages, $catid) {
if(is_null($catid) || empty($catid)) return;
return build_breadcrumbs($pages, $pages[$catid]['parentid']).$pages[$catid]['catname'].' > ';
}
該函數返回父的面包屑+當前的痕跡。 使用這樣的功能:
$catid = 6;
$breadcrumbs = trim(build_breadcrumbs($pages, $catid), ' >');
echo $breadcrumbs;
或者,如果你更喜歡數組,你可以創建一個這樣的函數:
function build_breadcrumbs($pages, $catid) {
if(is_null($catid) || empty($catid)) return array();
return array_merge(build_breadcrumbs($pages, $pages[$catid]['parent']), array($pages[$catid]['name']));
}
使用它與內爆:
$catid = 6;
$breadcrumbs = implode(' > ', build_breadcrumbs($pages, $catid));
echo $breadcrumbs;
這使您可以選擇在函數外部定義分隔符。 希望有所幫助。
它們被稱為面包屑。 這里有一個可能有用的教程: http : //www.mindpalette.com/tutorials/breadcrumbs/index.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.