程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php 進階:實現無限分類(4)

php 進階:實現無限分類(4)

編輯:PHP綜合
4.路徑跟蹤
------------------------------------------------------------
前面已經介紹過了分類的創建實現方法,在分類表裡記載了 rout_id 和 rout_char 這兩個存儲分類路徑的信息,在不做任何處理的情況下,程序只能夠順序下到最底層的分類而無法倒退(當然可利用浏覽器的 back 鍵倒退,但這對程序來說是不完整的),因此必須將 rout_id 和 rout_char 的信息分解出來完成實在的路徑指示.

具體的做法,假如數據庫記載了這麼一條分類信息:

id:4
uid:2
type:開發工具
rout_id:0:1:2:4
rout_char:系統:Linux:開發工具

當程序走到分類'開發工具'上時,除了要求顯示路徑信息外還要求能夠去到路徑上的任一分類中,該怎麼做能?這裡就需要用到 explode() 函數了.因為 rout_id 和 rout_char 是對應關系的,所以可將它們分解:

$path=explode(":",$rout_id);
$path_gb=explode(":",$rout_char);

這時所有分類信息都被分解了,現在要做的就是以鏈接的方式還原路徑信息:

for ($i=0;;$i++) {
$a=$i+1;
echo "<a
href=$PHP_self?func=showtype&uid=",$path[$a],">",$path_gb[$i],"</a>:";
if (empty($path_gb[$i])) {
break;
}
}

上面這段代碼就實現了加鏈接還原路徑的功能,因為實現的是無限分類,因此是沒有上限的,所以在 for($i=0;;$i++) 裡沒有范圍限制,而設置循環退出的條件是 $path_gb[$i] 中的值為空,將這段代碼插入類別顯示版面的程序塊內就行了:

<?
.....
.....
//顯示分類************************************************
if ($func=='showtype'):

echo "<table>";

//判斷分類的狀態
if ($uid!=0) {
$result=MySQL_query("select * from type where id=$uid");
$type=MySQL_result($result,0,"type");

//******** 新加入的代碼 ***************
$rout_id=MySQL_result($result,0,"rout_id");
$rout_char=MySQL_result($result,0,"rout_char");
$path=explode(":",$rout_id);
$path_gb=explode(":",$rout_char);
echo "<tr><td>";
for ($i=0;;$i++) {
$a=$i+1;
echo "<a
href=$PHP_self?func=showtype&uid=",$path[$a],">",$path_gb[$i],"</a>:";
if (empty($path_gb[$i])) {
break;
}
}
echo "</td></tr>";
//******** end ***********************

} else {
$type='父分類';
}

echo "<tr><td><a href='$PHP_self?func=createtype&uid=$uid'>創建分類</a></td></tr>";

echo "<tr><td>$type</td></tr>";

$result=MySQL_query("select * from type where uid=$uid");
$num=MySQL_numrows($result);

if (!empty($num)) {
for ($i=0;$i<$num;$i++) {

$id=MySQL_result($result,$i,"id");
$type=MySQL_result($result,$i,"type");

echo "<tr><td>";
echo "<a href='$PHP_self?func=showtype&uid=$id'>$type</a>";
echo "</td></tr>";
}
}

echo "</table>";
endif; /* end showtype */
.....
.....
?>

完成這個功能塊後,就可繼續分類信息的顯示實現了...
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved