PHP無(wú)限級(jí)分類之導(dǎo)航LINK樣式
實(shí)現(xiàn)原理圖
導(dǎo)航LINK樣式:
<?php include('conn.php'); function getCatePath($cid, &$result = array()) { $sql = "SELECT * FROM deepcate WHERE id=$cid"; $rs = mysql_query($sql); $row = mysql_fetch_assoc($rs); if ($row) { $result[] = $row; getCatePath($row['pid'], $result); } krsort($result); //krsort對(duì)數(shù)組按鍵名逆向 return $result; } ?>
代碼解釋:
同下拉樣式相同,創(chuàng)建getCatePath函數(shù),執(zhí)行sql語(yǔ)句查詢id,并把取得的付給$rs.使用mysql_fetch_assoc來(lái)獲取數(shù)組,調(diào)用自身getCatePath把pid和自身的id進(jìn)行查詢。
返回$result,使用逆向的方式對(duì)數(shù)組進(jìn)行排序。
然后繼續(xù)進(jìn)行美化,封裝起來(lái)。
<?php include('conn.php'); function getCatePath($cid, &$result = array()) { $sql = "SELECT * FROM deepcate WHERE id=$cid"; $rs = mysql_query($sql); $row = mysql_fetch_assoc($rs); if ($row) { $result[] = $row; getCatePath($row['pid'], $result); } krsort($result); //krsort對(duì)數(shù)組按鍵名逆向 return $result; } function displayCatePath($cid,$url='cate.php?cid=') { $res = getCatePath($cid); $str = ''; foreach ($res as $key => $val) { $str.= "<a href={$url}{$val['id']}>{$val['catename']}</a>>"; } return $str; } echo displayCatePath(10); ?>
這樣,無(wú)限級(jí)分類的LINK樣式就完成了。
本章難點(diǎn)
1.link樣式是從父節(jié)點(diǎn)開(kāi)始,向下尋找其子孫節(jié)點(diǎn),而形成的一個(gè)樹(shù)狀圖形,link樣式判斷的是當(dāng)前節(jié)點(diǎn)的pid與上一個(gè)節(jié)點(diǎn)的id相等.