手机
当前位置:查字典教程网 >编程开发 >php教程 >一个更简单的无限级分类菜单代码
一个更简单的无限级分类菜单代码
摘要:首先要感谢terry39的指点,元旦闲来无事,我就把他所讲的原理简单实现一下,这个程序的关键就在于数据表的设计很有特色,不用递归,依靠个简单...

首先要感谢terry39的指点,元旦闲来无事,我就把他所讲的原理简单实现一下,这个程序的关键就在于数据表的设计很有特色,不用递归,依靠个简单SQL语句就能列出菜单,看看这个数据表怎么设计的:

数据库字段大概如下:

-----------------------------------------------------------------------------------

id编号

fid父分类编号

name分类名

path分类路径,以id为节点,组成类似,1,2,3,4,这样的字符串

----------------------------------------------------------------------------------

可以假设有如下的数据

idfidnamepath

----------------------------------------------------

10分类1,1,

20分类2,2,

31分类1-1,1,3,

41分类1-2,1,4,

52分类2-1,2,5,

64分类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();//调用方法生成菜单

?>

1

【一个更简单的无限级分类菜单代码】相关文章:

一个简单的自动发送邮件系统(一)

PHP开启opcache提升代码性能

我的论坛源代码(五)

一个用php3编写的简单计数器

我的论坛源代码(四)

php实现简单的语法高亮函数实例分析

一个多文件上传的例子(原创)

一个简单的自动发送邮件系统(三)

多数据表共用一个页的新闻发布

一个简单的自动发送邮件系统(二)

精品推荐
分类导航