无限级分销系统查自己上级、下级之多叉树实现关系速查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获取上级姓名,无限级分销系统查自己上级、下级之多叉树实现关系速查...相关推荐

  1. php根据某一标识获取所有上级id或所有下级id

    通过递归查询根据标识获取所有上级id或所有下级id 1.数据表如下: 2.获取所有下级标识id function getAllLowerLevelId($list, $p_id = '0', $isF ...

  2. php 获取 所有上级 id,z-blog获取分类以及上级分类的代码

    今天有主题使用的小伙伴来问在z-blog中通过分类获取上级分类的方法,以防以后再重复回答这个问题,就写个教程吧,有需要的可以拿走. 查看zblog中获取上级分类的代码 这部份内容,如果不是开发者可以直 ...

  3. mysql中返回上级_MySql 获取当前节点及递归所有上级节点

    -- MySql 获取当前节点及递归所有上级节点 -- 参数说明:resultField:查询返回字段,idd 要查询的资源ID值,idFieldName ID字段名,parentIdFieldNam ...

  4. Android 获取联系人姓名和电话号码信息

    ContactsContract 类是存储联系人相关信息的数据库. 获取联系人信息的URL:ContactsContract.Contacts.CONTENT_URI 几个需要用到的字段: Conta ...

  5. shell 脚本返回上级目录_Bash技巧:简单快速 cd 到多层上级目录的 Shell 脚本

    在 Linux 中,当需要 cd 到多层的上级目录时,需要输入 cd ../../../ 等等多个 "../". 在输入比较快的时候,往往中间会多输入一个点号 '.'.或者少输入一 ...

  6. LiveGBS流媒体平台GB/T28181功能-作为上级平台对接海康大华华为宇视等下级平台监控摄像机NVR硬件执法仪等GB28181设备

    LiveGBS作为上级平台对接海康大华华为宇视等下级平台监控摄像机NVR硬件执法仪等GB28181设备 1.背景说明 2.部署国标平台 2.1.安装使用说明 2.2.服务器网络环境 2.3.信令服务配 ...

  7. VC下通过进程ID获取进程镜像文件路径的方法及其存在的缺陷

    工作中经常会遇到通过进程ID获取进程镜像文件或者其他模块的路径的需求.(转载请指明出处)网上关于方案大致存在两种方案: OpenProcess->GetModuleFileName OpenPr ...

  8. 使用 spring 的 IOC 解决程序耦合——获取spring的Ioc核心容器,并根据id获取对象、核心容器的两个接口(ApplicationContext、BeanFactory)引发出的问题

    IOC概念和spring中的IOC 明确 ioc 的作用: 削减计算机程序的耦合(解除我们代码中的依赖关系). 使用 spring 的 IOC 解决程序耦合 获取spring的Ioc核心容器,并根据i ...

  9. 最新!中国天气网api接口调用,key获取方式,数据请求秘钥获取,城市id获取方法

    以前的天气获取方式已经不支持了,虽然能获取到数据,但是获取到的信息已经不对了. 中国天气网提供的最新接口需要数据请求秘钥key.而且有效期只有7天,用完了还要重新购买,很麻烦,但是获取到的内容绝对是最 ...

  10. js中用tagname和id获取元素的3种方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

最新文章

  1. putty遇到ctrl+s
  2. 思科谈OpenDaylight
  3. 2020 年软件开发趋势预测,Java 将占主导,Python 将要吞噬世界
  4. 1463. Happiness to People!
  5. openpyxl 插入列_[Python]Excel编程(openpyxl)学习笔记
  6. 文本输入控件wx.TextCtrl
  7. 安卓第二阶段实训项目:基于媒体库音乐播放器V1.0
  8. C++之explicit探究
  9. linux内核的nfs实现框架
  10. 腾讯测试王者荣耀网速的软件,腾讯游戏启用账号时长共享功能 开启人脸识别测试有效果吗?以《王者荣耀》为试点...
  11. 一行命令自动给图片戴上口罩,硬核操作!
  12. java里程碑之泛型--使用泛型
  13. 第四章需求分析与设计工具
  14. Xenu检测网站死链
  15. 1. 从WordPress搬家到网易博客!
  16. 2023.3.5英语单词学习笔记
  17. Chrome 53 Beta一些有意思的改动
  18. DRC的报错类型及其对应的规则
  19. pads查看pcb软件
  20. 《计算机科学概论》读书笔记

热门文章

  1. JavaScript中String的replace函数
  2. win7 C盘空间越来越小 Windows文件夹变大的问题
  3. 数据链路层之以太网协议和网络层IP协议
  4. 【Tensorflow2】语义分割实战1---斑马线识别
  5. 从零基础入门Tensorflow2.0 ----五、22TF1.0计算图构建
  6. MODIS植被覆盖度
  7. 模板题——位运算,离散化,区间合并
  8. pypi 镜像使用帮助——临时使用镜像网站
  9. R中ggplot2绘图学习笔记
  10. python的标准库——turtle