源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
楼主: ttx9n

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

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2018-12-25 17:49:20 | 显示全部楼层 |阅读模式
本文从数据库设计,代码编写到效果图详细介绍了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 = '<select>';
    foreach ( $result as $item ) {
        $selected = "";
        if ( $selectid == $item['id'] ) {
            $selected = 'selected';
        }
        $str .= '<option '.$selected.'>'.$item['catename'].'</option>';
    }
    return $str .= '</select>';
} /**
 * 从子类开始逐级向上获取其父类
 * @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 .= '<a href="'.$item['id'].'">'.$item['catename'].'</a>>';
    }
    return substr($str, 0, strlen($str) - 1);
}
 echo displayLists(0, 3);
 echo displayCategory(13);

3,效果图:

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

回复

使用道具 举报

27

主题

2万

回帖

331

积分

中级会员

Rank: 3Rank: 3

积分
331
发表于 2022-10-24 10:48:19 | 显示全部楼层
论坛有你更精彩!
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

68

积分

注册会员

Rank: 2

积分
68
发表于 2023-5-7 14:27:43 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

87

积分

注册会员

Rank: 2

积分
87
发表于 2023-6-15 14:22:16 | 显示全部楼层
老大你好你好好你好
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

69

积分

注册会员

Rank: 2

积分
69
发表于 2023-6-24 04:06:44 | 显示全部楼层
为全额万千瓦
回复 支持 反对

使用道具 举报

3

主题

2万

回帖

163

积分

注册会员

Rank: 2

积分
163
发表于 2023-9-3 13:05:12 | 显示全部楼层
为全额万千瓦
TS人妖演出表演服务q3268336102电话13168842816
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

120

积分

注册会员

Rank: 2

积分
120
发表于 2023-10-7 15:41:12 | 显示全部楼层
的谁vdvdsvdsvdsdsv
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-10-20 03:03:35 | 显示全部楼层
收下来看看怎么样
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-11-4 10:15:16 | 显示全部楼层
啦啦啦啦啦啦哈哈哈
回复 支持 反对

使用道具 举报

13

主题

2万

回帖

97

积分

注册会员

Rank: 2

积分
97
发表于 2024-5-22 10:58:30 | 显示全部楼层
看看看咋么
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2025-2-1 11:56 , Processed in 0.209620 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表