php如何查找会员无限分类的所有上级和所有下级

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php如何查找会员无限分类的所有上级和所有下级相关的知识,希望对你有一定的参考价值。

会员a, 会员a下有会员a-1,a-2,
a-1下有a-1-1,a-1-2 以此类推 无限极
怎么查询某个会员的所有上级 和所有下级
数据库 是有id uid username id是注册会员自动生成ID号 uid存放上级父id

a会员id是1,uid是0
a-1会员id是2, uid是1
a-2会员id是3,uid是1
a-1-1会员id是4,uid是2
a-1-2会员id是5,uid是2

以此类推 无限极

现在我需要查询其中某个会员 的所有上级及下级

这个就要看你的数据库是怎么实现的。
我之前给一个人做个一个类似的会员推广提成的模块,就a推广出的a-1,a-2继续推广,得到a-1-1,a-1-2等等。
我的数据库设计思路如下:
用户表中有一个son这么一个字段,这个字段中存放名下所有会员的id,用分号隔开。
这个字段的维护:
比如a-1-1推广出了一个a-1-1-1,此新用户的id是12345,那么给a-1-1 a-1 a这个三个用户son字段内均添加12345这个id,删除一个用户做法一样。
有了这张表就能实现你要的效果。
查一个会员名下所有的会员,只需要读取该会员的son字段即可
查一个会员的上级 怎在数据库中所搜son字段,含有此会员id的都是他的上级会员。
当然,还有一个字段是标记此会员的直接上级会员,这样 一张表就能从任意会员得到整个会员推广树。
希望这个思路能帮到你。追问

能帮我截下您的想法数据表的结构和一条数据吗,还有一点点不明白额

追答

字段 id pid name son ...后面省略

这个是测试数据

要获取id为7的所有上级,只需在son中找7即可,1 2 4 均是7的上级 4是7的直接上级

要获取id为4的所有下级,直接读取son即可,6 7 8 9 为4的下级

追问

请问 son里面的id号 怎么添加上去

追答

以9为例,添加9这个用户时肯定是知道他的直接上级是8,因为就是通过8推广得到9的,然后根据8取到8的所有上级,将9添加到8的所有上级的son字段中,包括8也要添加。

追问

那如果我要是 注册新会员 所有上级都个一个积分 也是不用这个逻辑就可以了

追答

恩,没错。

参考技术A 是数据库吗?字段有哪些?如果是你那种举例的规则的话,可以用模糊查询或者正则表达式匹配出来,必要的情况下选择递归算法。

SQL查询无限层级结构的所有下级,所有上级

无限层级结构的table1表,Id(主键),ParentId(父级id)查询某个Id的所有下级或所有上级,使用WITH AS,UNION ALL 查询

1、查询Id为1所有的下级

WITH T
AS( 
    SELECT * FROM table1 WHERE Id=1
    UNION ALL 
    SELECT a.*  FROM table1 a INNER JOIN T ON a.ParentId=T.Id  
) 
SELECT * FROM T

2、查询Id为88所有的上级

WITH T
AS( 
    SELECT * FROM table1 WHERE Id=88
    UNION ALL 
    SELECT a.*  
    FROM table1 a INNER JOIN T ON a.Id=T.ParentId  
) 
SELECT * FROM T

 

以上是关于php如何查找会员无限分类的所有上级和所有下级的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询无限层级结构的所有下级,所有上级

SQL查询无限层级结构的所有下级,所有上级

thinkphp无限下级查找实现方法,可以通过递归和预排序历遍算法

无限极分类中递归查找一个树结构

递归无限查询上级或者下级

无限极分类查找所有子孙节点的改进算法