我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql中无限极分类的实现方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql中无限极分类的实现方法

小编给大家分享一下mysql中无限极分类的实现方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

我也是从别的地方找来的,分析后发现挺不错的,特来分享。

无法发图只能简单处理:

id                      name                    pid                    path

1                        新闻                      0                          0

2                        中国新闻              1                          0-1

3                        美国新闻              1                          0-1

4                        北京新闻              2                         0-1-2

5                        指甲哥新闻          3                          0-1-3

一条语句搞定:

SELECT id,name,pid,path,concat(path,’-‘,id) AS newpath FROM cates ORDER BY newpath

查询后的结果:

id                      name                    pid                          path                  newpath

1                         新闻                       0                           0                        0-1

2                         中国新闻               1                           0-1                     0-1-2

4                         北京新闻               2                           0-1-2                  0-1-2-4

3                         美国新闻               1                           0-1                      0-1-3

5                         指甲哥新闻          3                            0-1-3                   0-1-3-5

可以看出,结构已经很清晰了。非常巧妙的运用了mysql的排序功能,用 concat() 函数把当前路径与当前的id的连接起来(很想连接字符串),起个别名 newpath ,在排序 newpath,巧的是排序时先比较0,在比较1,在比较2,在比较3…,这样查询的结果是直接按曾级排序好的,接下来只需要在前台循环输出就可以了,“层级关系占位符”也好解决,newpath 的 0-1-2-4 这个就相当于无限极占位符,php输出时要用上面的语句查询出来,在后台处理 每一条数据的 newpath 字段值,先把值分割成数组,在统计这个数组,再在数组里添加一个键count(一组数据),把统计的数组个数放到这个键里。

thinkphp 5.0 为例:

$list = CateModel::fild(‘id,name,pid,path,concat(path,’-‘,id)’)->order(‘newpath asc’)->select();
// 上面模型查询方法只是大概意思,可以根据最上面的 mysql 语句,用 tp5 的方式拼出来。
foreach ($list as $k=>v){
$list[$k][‘count’] = count(explode(‘-‘,$v))
}

这个count就是层级分类的占位符,然后在模版里循环它,循环几次就echo 几次  

<select name=”aa”>
{volist name=”list” id=”vo”}
<option vlaue=”{$vo.id}”>
{php}
for($i=0;$i<$vo[‘count’]*2;$i++){
echo ‘&nbsp;’
}
{/php}
{$vo.name}
</option>
{/volist}
</select>

效果:

新闻

中国新闻

北京新闻

美国新闻

华盛顿新闻

以上是mysql中无限极分类的实现方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql中无限极分类的实现方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

php实现无限极分类的方法

小编给大家分享一下php实现无限极分类的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php实现无限极分类的方法:首先创建一个PHP示例文件;然后编写逻辑代码
2023-06-14

php无限极分类怎么实现

在 PHP 中实现无限级分类可以使用递归的方法来实现。以下是一个示例代码:// 定义一个函数来获取指定父级分类的子级分类function getChildCategories($parentId, $categories) {$chil
2023-10-27

PHP如何实现无限极分类生成树

这篇文章主要介绍了PHP如何实现无限极分类生成树,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。无限极分类生成树function generateTree($items){
2023-06-03

Javascript无限分类算法的实现

Javascript无限分类算法的实现通过asp 动态生成 js 的数组,然后js在客户端去排列,最大的减少了服务器端的压力。(服务器端只是查询了一次,没有其他操作)数据库设计:  id: 索引,自动编号  mc: varchar 100字
2023-06-03

php+mysql实现的无限分类方法类定义与使用示例

本文实例讲述了php+mysql实现的无限分类方法类定义与使用。分享给大家供大家参考,具体如下: 创建数据库以及表CREATE DATABASE `sortclass`DEFAULT CHARSET utf8;CREATE TABLE IF
2022-05-23

DEDECMS中获取无限栏目子分类的方法

做企业网站大部分是使用DEDEcms,今天在给客户设计网站时,把DEDE自动内链和URL全拼格式搞定后,又遇到了个小问题,因为产品分类最多有四级,客户要求在左侧有个弹出式菜单调用各级子分类出来,而DEDECMS默认只能调用一级分类。经过萧涵
2022-06-12

Go实现各类限流的方法

前 言 在开发高并发系统时,我们可能会遇到接口访问频次过高,为了保证系统的高可用和稳定性,这时候就需要做流量限制,你可能是用的 Nginx 这种来控制请求,也可能是用了一些流行的类库实现。限流是高并发系统的一大杀器,在设计限流算法之前我们先
2022-06-07

python无限循环语句的实现方法

这篇文章主要为大家展示了python无限循环语句的实现方法,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“python无限循环语句的实现方法”这篇文章吧。python无限循环语句的实现方法:在whi
2023-06-06

nodejs mysql 实现分页的方法

这两天学习了nodejs mysql 实现分页,很重要,所以,今天添加一点小笔记。代码如下var express = require('express'); var router = express.Router(); var settin
2022-06-04

python中怎么实现抽样分类方法

这期内容当中小编将会给大家带来有关python中怎么实现抽样分类方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。11.1 算法抽查在实践之前你并不知道哪种算法对你的的数据效果最好。 你需要尝试用不同的算
2023-06-19

编程热搜

目录