一个更简单的无限级分类菜单代码
一个更简单的无限级分类菜单代码
首先要感谢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
作者:辉老大
功能:定义数据库操作及生成菜单列表类
**************************************/
classmenu{
//创建构造函数,作用:数据库连接并选择相应数据库
publicfunction__construct(){
$dbhost="localhost";
$dbuser="root";
$dbpassword="7529639";
$dbname="menu";
mysql_connect($dbhost,$dbuser,$dbpassword)ordie("error!");
mysql_query("SETNAMES'GBK'");
mysql_select_db($dbname);
}
//执行SQL语句函数
privatefunctionquery($sql){
returnmysql_query($sql);
}
//取得结果集数组函数
privatefunctionloop_query($result){
returnmysql_fetch_array($result);
}
//列出菜单列表函数
publicfunctionmenulist(){
$sql="select*fromlistorderbypath";
$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>';
}
}
//创建析构函数,作用:关闭数据库连接
publicfunction__destruct(){
returnmysql_close();
}
}
$db=newmenu();//生成实例
$db->menulist();//调用方法生成菜单
?>
分享到:
相关推荐
在实际开发中,ASP无限级分类可以应用于产品目录、文章分类、菜单导航等多种场景。通过调用`class.asp`中的方法,可以动态生成各级分类的HTML结构,同时支持用户在前端进行多级导航和搜索。 综上所述,ASP的无限级...
这个"ASP无限级分类代码"示例可能包括了上述所有功能的实现,提供了一个完整的解决方案。通过学习和理解这个代码,开发者可以快速掌握在ASP环境中实现无限级分类的方法,从而在自己的项目中应用。如果你是初学者,这...
"简单无限级分类.rar"这个压缩包文件很可能包含了一个实现这种无限级分类的示例代码或教程。 无限级分类的实现通常有两种主要方法:递归方式和连接方式。 1. **递归方式**:在数据库设计时,我们会为每个分类添加...
在“layui无限级导航菜单.zip”这个压缩包中,我们主要会接触到layui如何实现一个功能完善的无限级导航菜单。这个菜单通常用于Web应用程序的左侧栏,帮助用户便捷地浏览和访问多层级的页面结构。 首先,layui的导航...
无限级分类允许我们创建一个可以无限深度扩展的分类系统,无需预先设定最大层级。下面我们将深入探讨PHP实现无限级分类的方法、常见算法以及如何结合SQL数据库进行操作。 首先,无限级分类的核心在于每个分类都有一...
这个"漂亮无限级分类源代码(三层实现)"很可能是一个实现这种功能的编程示例,它通过三层架构来优雅地处理无限层级的数据。下面我们将深入探讨这个主题。 无限级分类通常用于创建树形结构,例如网站的菜单系统,...
9. **库和框架**:为了简化开发,可以利用现有的JavaScript库或框架,如jQuery、React、Vue或Angular,它们提供了丰富的功能和组件,可以帮助快速实现无限级分类菜单。 综上所述,"无限级分类js菜单"涉及到数据库...
"无限级分类下拉式导航菜单.txt"可能是该技术的详细文档或示例代码,"懒人建站.url"可能指向一个提供此类导航菜单的在线建站平台。"pro_dropdown_2"可能是某个专业下拉菜单库的文件名,可能包含更高级的特性,如多列...
在做PHP程序时,经常会遇到设计多级菜单的编程,其实在许多的开源后台都是无限级的分类,而这些分类的数据仅仅只保存到了一个数据表里,只是用源代码进行了关联而已。而这些关联的数据并不复杂,其实一个优秀的后台...
总的来说,"asp无限级分类加js收缩伸展功能代码"是一个结合了后端ASP处理无限级分类逻辑和前端JavaScript实现动态展示的技术方案。通过这种方式,可以创建一个可扩展性强、用户交互性好的分类系统。在开发过程中,...
在这个案例中,我们将深入探讨如何使用JavaScript来创建一个无限级联动菜单。 首先,我们需要理解菜单的基本结构。在HTML中,菜单通常由`<select>`元素及其嵌套的`<option>`元素组成。当用户选择一个选项时,下一级...
总结来说,"[其他类别]漂亮无限级分类源代码(三层实现)_johntree(ASP.NET源码)"这个压缩包文件包含了一个完整的ASP.NET项目,用于演示如何在Web应用中优雅地实现无限级分类。通过学习和理解这个源码,开发者可以...
在这个场景中,我们讨论的是一个支持无限级分类的js树,这意味着它可以处理任意深度的层级结构,用户可以根据需要添加任意多的子节点。 该实现基于组件模式,组件模式是软件工程中的一种设计模式,它将功能封装到...
在IT领域,尤其是在Web开发中,构建一个无限级分类树型菜单是一项常见的需求。这主要应用于网站导航、后台管理系统以及大型数据分类等场景。本文将深入探讨如何利用JSP(JavaServer Pages)技术来实现这样的功能。 ...
这个"无限级分类源代码_dotnet整站程序.rar"文件提供了一个完整的解决方案,用于创建和支持网站中的多层分类结构。下面我们将详细探讨这个源代码的主要实现方式和相关技术。 首先,无限级分类的核心思想是利用递归...
3. `App_Code`: 这是一个特殊目录,用于存放自定义的类库代码,例如,可能包含了用于处理菜单数据和逻辑的C#类。 4. `Handler.ashx`、`Handler2.ashx`: 这是ASP.NET的HTTP处理器(HTTP Handler),通常用于处理特定...
无限级分类在IT行业中,特别是在数据管理和Web开发中是一个重要的概念。它允许组织和表示具有层级关系的数据,例如网站导航菜单、目录结构、组织架构或产品分类等。在这个场景中,“漂亮的无限级分类”可能指的是...
2. **ASP.NET**:是由微软开发的一个服务器端Web应用程序框架,用于构建动态网站、Web应用程序和Web服务。ASP.NET提供了丰富的控件库、内置的安全性支持以及强大的开发工具,使得开发者能更高效地编写代码。 3. **...