首页 > 后端开发 > PHP问题 > php怎么实现无限极分类

php怎么实现无限极分类

藏色散人
发布: 2023-03-09 06:36:01
原创
2608 人浏览过

php实现无限极分类的方法:首先创建一个PHP示例文件;然后编写逻辑代码;接着从顶层逐级向下获取子类;最后从子类开始逐级向上获取其父类即可实现无限极分类。

php怎么实现无限极分类

本文操作环境:windows7系统、PHP7.1版,DELL G3电脑

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

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

1,数据库设计:

2,代码:

代码如下:

/** 
 * @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 = &#39;<select>&#39;; 
    foreach ( $result as $item ) { 
        $selected = ""; 
        if ( $selectid == $item[&#39;id&#39;] ) { 
            $selected = &#39;selected&#39;; 
        } 
        $str .= &#39;<option &#39;.$selected.&#39;>&#39;.$item[&#39;catename&#39;].&#39;</option>&#39;; 
    } 
    return $str .= &#39;</select>&#39;; 
} /** 
 * 从子类开始逐级向上获取其父类 
 * @param number $cid 
 * @param array $category 
 * @return array: 
 */ function getCategory($cid, &$category = array()) { 
    $sql = &#39;SELECT * FROM category WHERE id=&#39;.$cid.&#39; LIMIT 1&#39;; 
    $result = mysql_query($sql); 
    $row = mysql_fetch_assoc($result); 
    if ( $row ) { 
        $category[] = $row; 
        getCategory($row[&#39;pid&#39;], $category); 
    } 
    krsort($category); //逆序,达到从父类到子类的效果     return $category; 
} 
 function displayCategory($cid) { 
    $result = getCategory($cid); 
    $str = ""; 
    foreach ( $result as $item ) { 
        $str .= &#39;<a href="&#39;.$item[&#39;id&#39;].&#39;">&#39;.$item[&#39;catename&#39;].&#39;</a>>&#39;; 
    } 
    return substr($str, 0, strlen($str) - 1); 
} 
 echo displayLists(0, 3); 
 echo displayCategory(13);
登录后复制

3,效果图:

是不是很简单呢,小伙伴们可以直接拿去用哈,不收版权费。

【推荐学习:PHP视频教程

以上是php怎么实现无限极分类的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板