PHP无限级分类之导航LINK...LOGIN

PHP无限级分类之导航LINK样式

实现原理图

面包屑.png

导航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对数组按键名逆向
   return $result;
}
?>

代码解释:

同下拉样式相同,创建getCatePath函数,执行sql语句查询id,并把取得的付给$rs.使用mysql_fetch_assoc来获取数组,调用自身getCatePath把pid和自身的id进行查询。

返回$result,使用逆向的方式对数组进行排序。

然后继续进行美化,封装起来。

<?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对数组按键名逆向
    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);
?>

这样,无限级分类的LINK样式就完成了。


本章难点

1.link样式是从父节点开始,向下寻找其子孙节点,而形成的一个树状图形,link样式判断的是当前节点的pid与上一个节点的id相等.

<?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对数组按键名逆向 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); ?>
提交重置代码
章节课件