php从数据库读取菜单数据并树状显示

2023-05-16

数据库表结构


mcp_node表;

字段(node_code, node_name,node_pcode);

node_code为区域编码,node_name为区域名称,node_pcode为父区域编码 ,祖先父区域编码为0.


预期效果:



代码实现部分:

//按照区域字段查询属于该区域管辖的所有节点
//$area_field 系统管理所属区域
//$conn 数据库连接信息
//return $datas 所有相关区域信息数组(二维)

function getAreaNodes($area_field, $conn)
{

	$node_sql = "select * from mcp_node where node_code like '{$area_field}'";

	$node_query = mysql_query($node_sql, conn);
	$result = mysql_fetch_assoc($node_query);


        $i = 0;
       do
       {

		$data[$i] = $result;
		$i++;

 	}while($result = mysql_fetch_assoc($node_query));
	
	return $data;
}





//获取系统管理员所在区域父亲节点
//$area 系统管理员所属区域,在系统中由session获取
//$sign 区域编码分割符号

function getTreePnode($area, $sign)
{
	if (isset($area))
	{
		if (strstr($area, $sign))
		{
			$local = strrpos($area, $sign);
			$tree_pnode = substr($area, 0, $local);

		}
		else
		{

			$tree_pnode = '0';
		}
		return $tree_pnode;
	}

}


//$data 从数据库独读出的数组数据(二维数组),getAreaNodes()返回值
//$pnode 父节点, 默认为0,即从最顶级目录开始.(顶级目录父节点为0).
// $t 控制节点层次的行缩进,默认-1
//返回生成的层级数据

function getTree($data,	$pnode = 0, $t = -1) 
		{ 
			$t++;
			$html =	'';	
			foreach($data as $key => $value) 
			{ 
					if ($value['node_pcode'] == $pnode)	
				{		  
					
					$html .= str_repeat(' ',3*$t).'┝'."<a href='#' οnclick=\"show_mcu('{$value['node_code']}')\">".$value['node_name']."</a>"."<br>"; 
					
					$html .= getTree($data,	$value['node_code'], $t);	
					
				}
			} 
			return "<table>".$html."</table>";
			
		} 


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php从数据库读取菜单数据并树状显示 的相关文章

随机推荐

  • 腾讯后端面试经验

    终于等来腾讯的面试 4 3号 机试 机试包括选择 xff08 30多 xff09 简答 xff08 2题 xff09 编程 xff08 2 xff09 选择和简答编程分别一小时 xff0c 选择题考的比较广 xff0c 概率 Linux 操
  • Springboot整合摘要式(Digest)身份认证

    百度下来关于springboot整合摘要式省份认证的帖子基本都是说原理的 xff0c 很少有直接的demo xff0c 前些天找到了一个博主写的demo xff0c 但是我只是截图了忘记了博主的地址很抱歉了 下面直接上代码截图 xff1a
  • kalibr相机内参标定优化过程和原理

    在估计出内参之后 xff0c 会进行优化迭代操作 如果是多相机标定 xff0c 在完成内参标定的同时 xff0c 也会完成具有交叉视野相机外参的的标定 初始估计步骤也会进行多相机基线距离的估计 xff0c 用作后续的迭代优化 优化过程如下
  • Curl多线程并发任务实例函数

    function curl post3 url arrs flen for i 61 0 i lt flen i 43 43 foreach arrs i as k 61 gt v tmp str 61 k 34 61 34 v 34 am
  • Linux下原子操作(信号量 自旋锁)的实现原理和底层代码分析

    csdn越改版 xff0c 越丑 开始我们的主题 xff1a Linux下原子操作 xff08 信号量 自旋锁 xff09 的实现原理和底层代码分析 2017年8月27日12 47 02 1 何为原子操作 xff1f 原子操作是什么 xff
  • Linux下用c语言实现发送http请求

    前言 在linux下 xff0c 使用socket进行编程 xff0c 需要到服务器上进行获取数据 xff0c 服务器使用的php编程 xff0c 需要使用http的方式进行获取数据 代码 span class hljs preproces
  • VSCode 的C++编译

    0 参考文档 0 1 官方参考 由于C 43 43 在不同平台上编译使用的编译器不同 xff0c 所以我们先将官网针对不同平台的编译文档摘录出来 xff0c 以便大家参考 xff1a 0 0 1 Linux平台使用GCC 参考 xff1a
  • STM32在子函数中的局部变量数组利用DMA发送无法正确发送数据的问题

    现象 xff1a 在子函数中 xff0c 定义了一个局部变量sendbuf 8 61 1 2 3 4 5 6 7 8 xff0c 然后分别利用普通串口发送函数发送可以正常发送和利用DMA发送 xff0c 并利用串口调试助手查看 xff0c
  • 如何使用Qt插件在Qt中进行ROS开发

    一 前言 本文介绍一种Qt下进行ROS开发的完美方案 xff0c 使用的是ros industrial的Levi Armstrong在2015年12月开发的一个Qt插件ros qtc plugin xff0c 这个插件使得Qt 新建项目 和
  • MN316_OPEN(NBIOT)物联网模块环境搭建

    因为项目的需要 这里要使用NBIOT 踩了一些坑 这里总结一下 编译 官方给的SDK如下 按照说明 在该目录下直接运行如下指令 34 build bat dlvs h0 demo 34 即可成功编译 但是我编译的时候不成功 报错如下 最后发
  • 《学习STL》-1.STL简介

    引言 当你C 43 43 入门后 xff0c 学了些C 43 43 编程规则 xff0c 正如 C 43 43 Primer 里的内容 xff0c 你知道C 43 43 里面的基本数据类型 循环 判断 函数 类 模板等 这阶段你的确会编写一
  • linux查看大小端命令

    Byte Order Litter Endian 小端模式 xff0c 绝大部分机器都是小端模式
  • 星网宇达利用NTRIPClient连接千寻服务器获取差分定位数据

    硬件设备 xff1a 星网宇达XW GI5610 软件设备 xff1a QXNTRIPClient 连接方式 xff1a 星网宇达RTK RS232连接电脑串口 打开QXNTRIPClient xff0c 连接千寻服务器 接收下发RTK数据
  • Ubuntu20.04 安装 mNetAssist

    安装环境 xff1a Ubuntu20 04安装包 xff1a mNetAssist release amd64 deb 安装与运行 span class token function sudo span span class token
  • 使用 include-what-you-use 检测冗余头文件

    include what you use 可以很方便的检测未使用的头文件 xff0c 使用的时候绕了点路 xff0c google后解决 xff0c 记录一下 1 安装clang ubuntu下直接apt get 安装就行了 需要注意的是
  • C语言结构体对齐详解

    文章目录 一 C语言结构体对齐大小快速判断二 反汇编角度看结构体三 总结 一 C语言结构体对齐大小快速判断 在C语言中定义一个结构体 xff0c 里面具体占用多少个字节呢 xff0c 先举一个例子 xff0c 如下 xff1a span c
  • 飞控各传感器相关作用

    飞控主要包括主控处理器MCU xff08 main control unit 和惯性导航模块IMU xff08 Inertial Measurement Unit xff09 四轴则必须配备3轴陀螺仪 xff0c 是四轴飞行器的机械结构 动
  • C++ : C++基础 :从内存的角度看 char[]和char*

    char 和char 区别 1 xff1a 数据在内存中的存储2 xff1a char 和 char 分析3 xff1a char p2 和 char p1 3 1 修改指针所指向的地址 4 string转char 5 char 转stri
  • 基于 nonce 的用户身份验证协议

    一 xff1a 什么是nonce 维基百科 xff1a 安全工程中 xff0c Nonce 是一个在加密通信只能使用一次的数字 在认证协议中 xff0c 它往往是一个 随机或 伪随机数 xff0c 以避免 重放攻击 二 xff1a 举例说明
  • php从数据库读取菜单数据并树状显示

    数据库表结构 mcp node表 字段 node code node name node pcode node code为区域编码 node name为区域名称 node pcode为父区域编码 祖先父区域编码为0 预期效果 代码实现部分