找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 139|回复: 0
打印 上一主题 下一主题

PHP实现无限极分类图文教程

[复制链接]

2536

主题

2536

帖子

7532

积分

论坛元老

Rank: 8Rank: 8

积分
7532
跳转到指定楼层
楼主
发表于 2018-2-14 05:52:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            一般来说实现无限极分类都是使用递归或者迭代的方式,小伙伴们看下本文的实现方式吧。
1,数据库设计:


2,代码:
[U]复制代码[/U] 代码如下:/**
* @author koma
* @todo   PHP无限极分类
*/ $cn = mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('t', $cn) or die(mysql_error());
mysql_query('set names utf8');
/**
* 从顶层逐级向下获取子类
* @param number $pid
* @param array $lists
* @param number $deep
* @return array
*/ function getLists($pid = 0, &$lists = array(), $deep = 1) {
    $sql = 'SELECT * FROM category WHERE pid='.$pid;
    $res = mysql_query($sql);
    while ( ($row = mysql_fetch_assoc($res)) !== FALSE ) {
        $row['catename'] = str_repeat('   ', $deep).'|---'.$row['catename'];
        $lists[] = $row;
        getLists($row['id'], $lists, ++$deep); //进入子类之前深度+1         --$deep; //从子类退出之后深度-1     }
    return $lists;
}
function displayLists($pid = 0, $selectid = 1) {
    $result = getLists($pid);
    $str = '';
    foreach ( $result as $item ) {
        $selected = "";
        if ( $selectid == $item['id'] ) {
            $selected = 'selected';
        }
        $str .= ''.$item['catename'].'';
    }
    return $str .= '';
} /**
* 从子类开始逐级向上获取其父类
* @param number $cid
* @param array $category
* @return array:
*/ function getCategory($cid, &$category = array()) {
    $sql = 'SELECT * FROM category WHERE id='.$cid.' LIMIT 1';
    $result = mysql_query($sql);
    $row = mysql_fetch_assoc($result);
    if ( $row ) {
        $category[] = $row;
        getCategory($row['pid'], $category);
    }
    krsort($category); //逆序,达到从父类到子类的效果     return $category;
}
function displayCategory($cid) {
    $result = getCategory($cid);
    $str = "";
    foreach ( $result as $item ) {
        $str .= '[url='.$item['id'].']'.$item['catename'].'[/url]>';
    }
    return substr($str, 0, strlen($str) - 1);
}
echo displayLists(0, 3);
echo displayCategory(13);
3,效果图:

是不是很简单呢,小伙伴们可以直接拿去用哈,不收版权费^_^
            
            
您可能感兴趣的文章:
  • php+mysql实现无限级分类 | 树型显示分类关系
  • php 无限极分类
  • php无限极分类实现的两种解决方法
  • php 无限级分类,超级简单的无限级分类,支持输出树状图
  • php无限极分类递归排序实现方法
  • PHP超牛逼无限极分类生成树方法
  • php通过前序遍历树实现无需递归的无限极分类
  • php实现smarty模板无限极分类的方法
  • 深入浅析PHP无限极分类的案例教程
  • PHP无限极分类函数的实现方法详解
  • PHP实现无限极分类生成分类树的方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端