当前位置:首页 > MySQL教程 > 正文内容

mysql中无限极分类的代码完成【MySQL教程】,无限极分类

搜教程4年前 (2019-12-01)MySQL教程199
本篇文章给人人带来的内容是关于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>

结果:

消息

中国消息

北京消息

美国消息

华盛顿消息

相干引荐:

thinkphp中无穷级栏目的排序完成代码

TP5框架下如何用递归完成无穷分级(代码示例)

以上就是mysql中无穷极分类的代码完成的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/15538.html

标签: 无限极分类
分享给朋友:

“mysql中无限极分类的代码完成【MySQL教程】,无限极分类” 的相关文章

SQL中的有哪几种数据类型【MySQL教程】,类型,数据,几种

SQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型 扼要形貌一下SQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型 字符型 VARCHAR 和 CHAR VARCHAR型和CHAR型数据的这个差异是纤细的,然则非常重要。他们都是用来贮存字符串长度小于255的字符。...

MySQL慢查询日记的设置以及运用教程详解【MySQL教程】,MySQL,以及,配置

MySQL慢查询日记的设置以及运用教程详解【MySQL教程】,MySQL,以及,配置

慢查询日记用于纪录一些过慢的查询语句,能够协助管理员剖析问题所在,下面这篇文章重要给人人引见了关于MySQL慢查询日记的设置与运用教程,文中经由过程示例代码引见的异常细致,须要的朋侪能够参考下。 媒介 MySQL慢查询日记是我们在一样平常事情中经常会碰到的一个功用,MySQL慢查询日记供应了...

MYSQL完成防备增加购物车反复的代码实例【MySQL教程】,MYSQL,购物车,添加

在向mysql中插进去数据的时刻最须要注意的就是防备反复发增加数据,下面这篇文章主要给人人引见了关于MYSQL怎样完成增加购物车的时刻防备反复增加的相干材料,文中经由历程示例代码引见的异常细致,须要的朋侪能够参考自创,下面来一同看看吧。 媒介 近来由于事情的缘由,在做APP购物车下单付出这一...

MySql中运用Group By对多个字段举行分组的要领【MySQL教程】,MySql,Group,字段

这篇文章重要引见了MySql Group By对多个字段举行分组的完成要领,须要的朋侪能够参考下 相干mysql视频教程引荐:《mysql教程》 在日常平凡的开辟使命中我们常常会用到MYSQL的GROUP BY分组, 用来猎取数据表中以分组字段为根据的统计数据。比方有一个门生选课表,表构造以...

MySQL中关于prepare道理的详解【MySQL教程】,prepare,MySQL,详解

这篇文章重要引见了MySQL prepare的相干内容,包括prepare的发生,在服务器端的实行历程,以及jdbc对prepare的处置惩罚以及相干测试,须要的朋侪能够了解下。愿望对人人有所协助。 Prepare的优点 Prepare SQL发生的缘由。首先从mysql服务器实行sql...

怎样竖立可打印中文的数据库【MySQL教程】,数据库,中文,打印

平常的数据库的字符型数据的编码都是 latinl,这是不支撑中文的 而支撑中文的字符编码是utf-8和gbk 要想让数据库里的表能够显现中文就必须在竖立数据库的时刻指定字符编码 1 create database bb charset=utf8; 或许 1 1 create d...