一个更简单的无限级分类菜单代码

Vue + elementUi 实现菜单无限级的分类导航 Vue + elementUi 实现菜单无限级的分类导航 [ { "id": 1, "parent_id": 0, "menu_name": "第一级菜单 1", "sorting": 0, "node": [ { "id": 2, ... 阅读详情

一个更简单的无限级分类菜单代码  

一个更简单的无限级分类菜单代码

首先要感谢terry39的指点,元旦闲来无事,我就把他所讲的原理简单实现一下,这个程序的关键就在于数据表的设计很有特色,不用递归,依靠个简单SQL语句就能列出菜单,看看这个数据表怎么设计的:
数据库字段大概如下:
-----------------------------------------------------------------------------------
id              编号
fid             父分类编号
name         分类名
path          分类路径,以 id 为节点,组成类似    ,1,2,3,4, 这样的字符串
----------------------------------------------------------------------------------

可以假设有如下的数据

id      fid          name             path
----------------------------------------------------
1       0           分类1             ,1,
2       0           分类2             ,2,
3       1           分类1-1          ,1,3,
4       1           分类1-2          ,1,4,
5       2           分类2-1          ,2,5,
6       4           分类1-2-1       ,1,4,6,
----------------------------------------------------
这次偷懒,我只用一个页面,好在代码不长,全部代码用类封装的(不是必要,而是自己也想熟悉一下OO,呵呵!),来看看页面代码:

<?php

/**************************************
   
  页面:menu.php
  作者:辉老大
  功能:定义数据库操作及生成菜单列表类

**************************************/
class menu
{

       
//创建构造函数,作用:数据库连接并选择相应数据库
       
public function __construct
(){
           
$dbhost     = "localhost"
;
           
$dbuser     = "root"
;
           
$dbpassword = "7529639"
;
           
$dbname     = "menu"
;
           
mysql_connect($dbhost,$dbuser,$dbpassword) or die("error!"
);
           
mysql_query("SET NAMES 'GBK'"
);
           
mysql_select_db($dbname
);
       }

       
//执行SQL语句函数
       
private function query($sql
){
           return 
mysql_query($sql
);
       }

       
//取得结果集数组函数
       
private function loop_query($result
){
           return 
mysql_fetch_array($result
);
       }
       
//列出菜单列表函数
       
public function menulist
(){
           
$sql="select * from list order by path"
;
           
$result=$this->query($sql
);
            while(
$rows=$this->loop_query($result
)){
             if(
substr_count($rows['path'],',')>2
){
               for(
$i=0;$i<(substr_count($rows['path'],',')-2);$i
++)
               echo 
' '
;
              }
             echo 
$rows['name'].'<br>'
;
            }
       }

       
//创建析构函数,作用:关闭数据库连接
       
public function __destruct
(){
           return 
mysql_close
();
       }
   }
  
$db=new menu();
//生成实例
  
$db->menulist();
//调用方法生成菜单
?> 

Vue2+ElementUI实现无限级菜单 使用Vue2和ElementUI实现无限级菜单,通常菜单数据以树形结构存储,每个菜单包含多个子菜单 ,子菜单又可以继续包含更深层次的子菜单项。所以,需要使用递归形式,完成子项菜单的渲染。结合Element UI组件的el-menu和el-submenu组件来构建菜单结构,有子菜单时使用el-submenu,否则使用el-menu-item。可以通过自定义组件对Element-UI菜单组件递归渲染,也可以使用Vue的render方法完成Element-UI的菜单组件的渲染,... 阅读详情

相关推荐

jquery+CSS3 简易无限级纵向(上下)菜单插件

jquery+CSS3 简易实现的无限级纵向(上下)菜单,通常放于web应用程序的左侧。

LeeWhoee University 2777

java无限级分类详,无限级分类的简单实现

引子作为菜鸟的我面试过程中总是会被虐的体无完肤,即使知道是怎么一回事,但由于没有彻底掌握住,还是在关键时刻无法及时运用。所以多总结应该是我现在时常要做的事。遇到的这个机试题就是关于无限级分类的知识。无限级分类在项目中运用是比较平常的,逻辑也不会太难理解:一个父级下面包含多个子级。题目是这样的:点击下拉框选择,输入名称,添加,到对应的层级中。然后还要可以删除。实现大概效果图如下:图1图2实现1、数据...

weixin_28267011的博客 894

PHP数组方法实现无限级分类

本文还有配套的精品资源,点击获取 简介:在IT行业中,无限级分类广泛应用于数据库设计和编程,如网站导航菜单、文件目录等。本文将详细介绍如何使用PHP的数组方法来实现无限级分类,包括构建数据结构、递归与迭代方法、遍历策略、以及如何进行添加、删除和更新分类操作。同时,将探讨如何将这些技术应用于实际开发中,例如动态导航菜单的生成。 1. 无限级分类概念及应用场景 ...

weixin_33750664的博客 1224

java 无限级分类

实现Java无限级分类 1. 介绍 在Java中,实现无限级分类是一个常见的需求,特别是在电商系统或者新闻分类等场景中。本文将向你介绍如何实现Java无限级分类,帮助你理解整个流程并掌握实现方法。 2. 流程图 #render_12_2085556963-svg{font-family:"trebuchet ms",ver...

weixin_41091358的博客 249

创建无限级交互式菜单:JS+DIV+XML实战教程

在现代网页设计中,无限级菜单是提高用户体验的一种重要方式,它允许用户无限制地展开子菜单,以访问网站深层的内容。这种设计解决了传统下拉菜单只能展开有限层级的局限性,使得用户在浏览信息时可以更快捷地找到所需内容。可扩展标记语言(Extensible Markup Language,XML)是一种标记语言,用于存储和传输数据。XML的设计初衷是使数据独立于应用程序和硬件平台,因此它在数据交换领域得到了广泛的应用。

weixin_35753431的博客 689

3.仿淘宝网多级分类列表菜单代码.html

仿淘宝网多级分类列表菜单代码,可支持三级以上

[收藏] 三种 无限级分类 的数据库设计方案(菜单,,权限管理)

转载 三种 无限级分类 的数据库设计方案 ***适合(菜单,,权限管理)的数据库设计*** 第一种方案: 表为两张,一张分类表,一张信息表。 ( 一级分类和二级分类合并成一张表) TypeID 指一级二级分类的ID(唯一标识、主键) 序列自增从1开始。 TypeName 指一级二级分类的名字 ParentID 指二级分类所属一级分类TypeID (若为一级分类则填”0”...

失意渔翁 4197

最常见的左侧分类菜单栏jQuery实现代码

主要为大家详细介绍了最常见的左侧分类菜单栏jQuery实现代码,仿京东、淘宝等各大类网站效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

无限极分类JAVA 实现 Tree

工具类: import java.lang.reflect.Field; import java.util.*; public class MenuVueTreeUtil { private List<Object> list = new ArrayList<>(); public String asId = "id"; public String asPid = "pid"; public String asChild = "chi...

1034

TSMaster如何用珠海创芯CAN卡实现高效CAN通信(附完整驱动安装指南)

本文详细介绍了如何使用TSMaster软件与珠海创芯CAN卡实现高效CAN通信,包括驱动安装、系统配置、ControlCAN.dll替换及TSMaster集成配置等关键步骤。通过实战指南和故障排除技巧,帮助工程师快速搭建稳定可靠的CAN通信测试环境,适用于汽车电子和工业控制等领域。

weixin_29201859的博客 479

ERA5数据批量下载

ERA5再分析数据的IDM接管下载

qq_38734327的博客 3034

无限极分类 - 递归方法和非递归方法(传址、传引用)

0、引言 如果有更好的处理方案,欢迎评论,共同学习,手动比心。 背景 : 平时项目开发中,肯定都会遇到过,关于无限极分类的需求,比如后台菜单、产品分类等。 方案 : 自己这次文章记录了两种 : 递归 传址(传引用) 代码 : 以PHP为例 测试 :文章最后会对1w\10w条数据做个测试,对比两种方式执行速度。 1、递归 /** * 测试方法 */ public function test() { $array[] = array('id' => 1, 'title' => 'ti

wx940627的博客 415

[LaTeX] 使用natbib宏包实现参考文献的“作者-年份”引用格式及常见编译错误排查

本文详细介绍了在LaTeX中使用natbib宏包实现参考文献“作者-年份”引用格式的完整流程。从宏包配置、.bib文件准备到标准编译步骤,重点解析了常见的“Bibliography not compatible with author-year”错误成因,并提供了彻底清理辅助文件等解决方案,帮助用户高效排版符合学术规范的参考文献。

moon9的博客 481

thinkphp6无限级分类,树状菜单

这里是菜单,针对于类似官网首页的菜单导航,因为不限制用户填写菜单的级别以及个数,所以需要做无限级分类,原理就是将所有数据查询出来,然后根据其父级id和级别id来进行遍历,并一边遍历一边增加级别id来反复查询,并将数据一一追加进之前的数据中: //我的框架是thinkphp6 ,这个函数定义在common.php中 /** * 无限分类-菜单 * @param $cate arra...

zhangxy 5242

告别龟速计算!用Python的fengwo模块5分钟搞定通达信COST/WINNER函数(附完整代码)

本文介绍如何使用Python的fengwo模块高效复现通达信的COST和WINNER函数,解决量化交易中的计算精度和性能问题。通过C++核心算法和多线程优化,计算速度提升显著,误差低于0.5%,并支持与通达信DLL无缝集成,适用于实盘交易策略开发。

weixin_42533751的博客 600

CosyVoice语音合成使用教程

CosyVoice是一款开源的语音合成工具,它基于深度学习模型,能够生成高度逼真的语音内容。该工具支持多种语言的语音生成,包括中文、英文、日文、粤语和韩语。CosyVoice的亮点在于它对生成语音情感和韵律的精细控制,通过富文本或自然语言输入,可以显著提升合成语音的情感表达能力。CosyVoice提供了多种预训练模型,用户可以根据需求选择合适的模型。:基底模型,适用于一般语音合成任务。:经过SFT微调的模型,适用于特定音色和情感的语音合成。:支持Instruct微调的模型,适用于自然语言控制的语音合成。

笔者从事电信媒体开发多年,愿意将多年的开发经验分享给同行 4442

使用递归实现树状菜单(无限级分类)

本期概要: 使用递归实现无限级菜单分类 复制代码一、数据结构 一般情况下,我们的数据表常规设计如下: id name pid 1 PHP 技术 0 2 Linux 技术 0 ...

weixin_33816821的博客 2974

【晶振专题】晶振学习笔记——ST AN2867应用手册 2

通过学习AN2867设计指南,我们知道皮尔斯晶振的基本知识。也了解了晶振的负载电容计算方法、安全因子测试方法和反馈电阻的作用。

一点硬件 1364

asp.net中用DropDownList实现无限级分类菜单

推荐一个不错的api参考资料网站:api之家http://www.apihome.cn/ 因项目需要,要做一个菜单无限级分类,最后选择使用DroopDownList控件.时间紧急,只贴出代码,有相同需求的,可以看看     (1)数据库表说明:    PKID:不用说了吧    ClassName:类别名称    UPID:上级类别的ID(默认为0,表示一级大类) (2)代码如下:

happy97550的专栏 1375

【大语言模型 85】IA3与其他PEFT方法对比

在大语言模型时代,参数高效微调(PEFT)技术成为了降低微调成本的关键。本文深入解析IA3(Infused Adapter by Inhibiting and Amplifying Inner Activations)方法,并与LoRA、AdaLoRA、Prefix Tuning等主流PEFT技术进行全面对比,通过理论分析、代码实现和实验验证,帮助读者理解不同PEFT方法的优劣势和适用场景,为实际项目中的技术选型提供科学依据。

熵数实验室 753

PyTorch实战(20)——生成对抗网络(Generative Adversarial Network,GAN)

自生成对抗网络 (Generative Adversarial Network, GAN) 提出以来,一直是一个活跃的研究和开发领域。本节探索了 GAN 的基本概念,重点解析了其两大核心组件——生成器与判别器的架构设计,深入阐述了 GAN 模型的整体工作机制,并使用 PyTorch 从零开始实现了深度卷积生成对抗网络 (Deep Convolutional GAN, DCGAN)。

盼小辉丶的博客 3520

php无限下级菜单,PHP无限级分类菜单实例程序

最近在做一个内容管理的项目,客户硬要来一个多级分类,其实在许多的开源后台都是无限级的分类,比如111com.net的后台,而这些分类的数据仅仅只保存到了一个数据表里,只是用源代码进行了关联而已。而这些关联的数据并不复杂,其实一个优秀的后台设计,应该是无限的分类,这样,在进行二次开发时,不用再单独进行编程了,只要是功能一样,后台添加一个分类就可以了,这样就达到了功能共享了。一个更简单的无限级分类菜单...

weixin_42442019的博客 372

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

iview菜单menu封装成二级菜单和无限级菜单

ivew的menu封装成二级菜单和无限极菜单 demo中有注释,此处不赘述了 github地址: 二级菜单封装: <template> <div class='con'> <Menu :theme="theme2" style='width:240px;float:left'> <div v-for="(item,index)...

Oralinge 5956

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

无限级菜单 mysql设计_无限级菜单简单的设计

策略:数据库就一张表,前端查询出所有的可显示的菜单,在前端进行循环展示。1,数据库表的设计CREATE TABLEsys_menu (idINT NOT NULLAUTO_INCREMENT,nameVARCHAR(64) NOT NULL,urlVARCHAR(255),pidINT NOT NULL DEFAULT 0,isLeafTINYINT NO...

weixin_34820733的博客 1015

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

基于Vue3.0 实现的无限级菜单

function deepClone(source, target) { var _tar = target || {}; let keys = Reflect.ownKeys(source); keys.map((key) => { if (typeof source[key] === "object") { _tar[key] = Object.prototype.toString.call(source[key]) === "[object Arr

weixin_43263355的博客 2825
上一篇: 彩虹的性能特点 (官方站《Feature Overview》译文)
下一篇: 无限级分类的实现(存储过程版)
SmartJavaer
博客等级 码龄21年 13粉丝 37原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值