php分销根据上级id获取上级姓名,无限级分销系统查自己上级、下级之多叉树实现关系速查...
无限级分销系统查自己上级、下级之多叉树实现关系速查CREATE TABLE `user_ppp` (
`uid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'uid',
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '姓名',
`puid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '自然关系pid',
`level` int(11) NOT NULL DEFAULT '0' COMMENT '自然等级从parent的level+1;parent=0是的level为1;',
`ppuid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '自然关系pid的parentid',
`rootuid` int(10) NOT NULL DEFAULT '0' COMMENT 'rootuid,puid=0的时候rootuid=uid表示一支',
`uleft` int(11) NOT NULL DEFAULT '0' COMMENT 'left数字',
`uright` int(11) NOT NULL DEFAULT '0' COMMENT 'right数字',
PRIMARY KEY (`uid`),
KEY `ix_rootuid` (`rootuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户层级关系表;隔离多叉树形式';
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (1, 'A', 0, 1, 0, 1, 1, 60);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (2, 'AA', 1, 2, 0, 1, 2, 3);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (3, 'AB', 1, 2, 0, 1, 4, 11);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (5, 'ABA', 3, 3, 0, 1, 5, 6);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (6, 'ABB', 3, 3, 0, 1, 7, 8);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (7, 'ABC', 3, 3, 0, 1, 9, 10);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (4, 'AC', 1, 2, 0, 1, 12, 59);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (8, 'AC', 4, 3, 0, 1, 13, 54);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (11, 'AC1', 8, 4, 0, 1, 14, 15);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (12, 'AC2', 8, 4, 0, 1, 16, 17);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (13, 'AC3', 8, 4, 0, 1, 18, 19);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (14, 'AC4', 8, 4, 0, 1, 20, 21);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (15, 'AC5', 8, 4, 0, 1, 22, 23);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (16, 'AC6', 8, 4, 0, 1, 24, 25);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (17, 'AC7', 8, 4, 0, 1, 26, 27);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (18, 'AC8', 8, 4, 0, 1, 28, 37);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (27, 'A1800', 18, 5, 0, 1, 29, 30);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (28, 'A1801', 18, 5, 0, 1, 31, 32);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (29, 'A1802', 18, 5, 0, 1, 33, 34);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (30, 'A1803', 18, 5, 0, 1, 35, 36);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (19, 'AC9', 8, 4, 0, 1, 38, 39);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (20, 'AC10', 8, 4, 0, 1, 40, 41);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (21, 'AC11', 8, 4, 0, 1, 42, 43);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (22, 'AC12', 8, 4, 0, 1, 44, 45);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (23, 'AC51', 8, 4, 0, 1, 46, 47);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (24, 'AC61', 8, 4, 0, 1, 48, 49);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (25, 'AC71', 8, 4, 0, 1, 50, 51);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (26, 'AC81', 8, 4, 0, 1, 52, 53);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (9, 'ACA', 4, 3, 0, 1, 55, 56);
INSERT INTO `user_ppp`(`uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright`) VALUES (10, 'ACB', 4, 3, 0, 1, 57, 58);
select uid,name,puid,level,ppuid,rootuid,uleft,uright from qx_user_ppp WHERE rootuid = 1 ORDER BY uleft
# 查uid为3的下级数量 为3 快速查找就是 (11-4-1) / 2
select count(uid) where puid = 3
uid为5下新增一级需要更新的所有右侧的值
# step 1
INSERT INTO `user_ppp` ( `uid`, `name`, `puid`, `level`, `ppuid`, `rootuid`, `uleft`, `uright` )
VALUES
( 50, 'xxx', 5, 4, 0, 1, 7, 8 );
# step 2
UPDATE user_ppp
SET uleft = uleft + 2,
uright = uright + 2
WHERE
rootuid = 1 // 根树条件
AND uleft >=7 // 右侧分支
php分销根据上级id获取上级姓名,无限级分销系统查自己上级、下级之多叉树实现关系速查...相关推荐
- php根据某一标识获取所有上级id或所有下级id
通过递归查询根据标识获取所有上级id或所有下级id 1.数据表如下: 2.获取所有下级标识id function getAllLowerLevelId($list, $p_id = '0', $isF ...
- php 获取 所有上级 id,z-blog获取分类以及上级分类的代码
今天有主题使用的小伙伴来问在z-blog中通过分类获取上级分类的方法,以防以后再重复回答这个问题,就写个教程吧,有需要的可以拿走. 查看zblog中获取上级分类的代码 这部份内容,如果不是开发者可以直 ...
- mysql中返回上级_MySql 获取当前节点及递归所有上级节点
-- MySql 获取当前节点及递归所有上级节点 -- 参数说明:resultField:查询返回字段,idd 要查询的资源ID值,idFieldName ID字段名,parentIdFieldNam ...
- Android 获取联系人姓名和电话号码信息
ContactsContract 类是存储联系人相关信息的数据库. 获取联系人信息的URL:ContactsContract.Contacts.CONTENT_URI 几个需要用到的字段: Conta ...
- shell 脚本返回上级目录_Bash技巧:简单快速 cd 到多层上级目录的 Shell 脚本
在 Linux 中,当需要 cd 到多层的上级目录时,需要输入 cd ../../../ 等等多个 "../". 在输入比较快的时候,往往中间会多输入一个点号 '.'.或者少输入一 ...
- LiveGBS流媒体平台GB/T28181功能-作为上级平台对接海康大华华为宇视等下级平台监控摄像机NVR硬件执法仪等GB28181设备
LiveGBS作为上级平台对接海康大华华为宇视等下级平台监控摄像机NVR硬件执法仪等GB28181设备 1.背景说明 2.部署国标平台 2.1.安装使用说明 2.2.服务器网络环境 2.3.信令服务配 ...
- VC下通过进程ID获取进程镜像文件路径的方法及其存在的缺陷
工作中经常会遇到通过进程ID获取进程镜像文件或者其他模块的路径的需求.(转载请指明出处)网上关于方案大致存在两种方案: OpenProcess->GetModuleFileName OpenPr ...
- 使用 spring 的 IOC 解决程序耦合——获取spring的Ioc核心容器,并根据id获取对象、核心容器的两个接口(ApplicationContext、BeanFactory)引发出的问题
IOC概念和spring中的IOC 明确 ioc 的作用: 削减计算机程序的耦合(解除我们代码中的依赖关系). 使用 spring 的 IOC 解决程序耦合 获取spring的Ioc核心容器,并根据i ...
- 最新!中国天气网api接口调用,key获取方式,数据请求秘钥获取,城市id获取方法
以前的天气获取方式已经不支持了,虽然能获取到数据,但是获取到的信息已经不对了. 中国天气网提供的最新接口需要数据请求秘钥key.而且有效期只有7天,用完了还要重新购买,很麻烦,但是获取到的内容绝对是最 ...
- js中用tagname和id获取元素的3种方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
最新文章
- putty遇到ctrl+s
- 思科谈OpenDaylight
- 2020 年软件开发趋势预测,Java 将占主导,Python 将要吞噬世界
- 1463. Happiness to People!
- openpyxl 插入列_[Python]Excel编程(openpyxl)学习笔记
- 文本输入控件wx.TextCtrl
- 安卓第二阶段实训项目:基于媒体库音乐播放器V1.0
- C++之explicit探究
- linux内核的nfs实现框架
- 腾讯测试王者荣耀网速的软件,腾讯游戏启用账号时长共享功能 开启人脸识别测试有效果吗?以《王者荣耀》为试点...
- 一行命令自动给图片戴上口罩,硬核操作!
- java里程碑之泛型--使用泛型
- 第四章需求分析与设计工具
- Xenu检测网站死链
- 1. 从WordPress搬家到网易博客!
- 2023.3.5英语单词学习笔记
- Chrome 53 Beta一些有意思的改动
- DRC的报错类型及其对应的规则
- pads查看pcb软件
- 《计算机科学概论》读书笔记