php+mysql无限级分类(非递归)
要实现无限级分类,递归一般是第一个也是最容易想到的,但是递归一般被认为占用资源的方法,所以很多系统是不考虑使用递归的
本文还是通过数据库的设计,用一句sql语句实现
数据库字段大概如下:
-----------------------------------------------------------------------------------
id 编号
fid 父分类编号
class_name 分类名
path 分类路径,以 id 为节点,组成类似 ,1,2,3,4, 这样的字符串
----------------------------------------------------------------------------------
可以假设有如下的数据
id fid class_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,
----------------------------------------------------
<?php
$sql="SELECT * FROM tree order by path";
$result=$nbs->Query($sql);
while($rows=$nbs->fetch_array($result)){
if(substr_count($rows['path'],',')>2){
for($i=0;$i<(substr_count($rows['path'],',')-2);$i++)
echo ' ';
}
echo $rows['class_name'].'<br>';
}
?>
其中$nbs是数据库操作类,此方法简单明了!
分享到:
相关推荐
在PHP中,有两种常见的无限级分类实现方式:递归和非递归(如使用路径法、栈或队列)。 1. **递归方法**: 使用递归函数,遍历所有分类,每次遇到子分类,就将当前分类作为父分类,继续查询。在PHP中,递归函数...
在本文中,将介绍如何使用PHP和MySQL实现无限级分类,而不采用递归的方式。递归虽然实现简单,但资源消耗较大,在很多实际应用中并不推荐使用。通过本文提供的实例,可以了解如何利用数据库设计和SQL查询来达到相同...
这种递归方法虽然直观且易于理解,但效率可能不如非递归方法,特别是当分类层次极深时。非递归方法通常利用栈或队列数据结构来避免重复的函数调用,减少内存开销和提高性能。不过,对于中小型数据集,递归方法通常是...
在PHP编程中,无极分类(也称为无限级分类)是一种常见的需求,特别是在处理具有层级关系的数据时,如网站导航菜单、文章分类等。这里提到的代码示例展示了如何使用递归方法在PHP中实现一个无极分类的功能,具体涉及...
总结来说,PHP实现无限级分类树形结构主要依赖于递归或非递归方法,通过构建节点间的父子关系来形成层级结构。理解这种数据结构对于处理需要展示层次关系的场景至关重要,例如网站导航、文件目录管理等。在实际项目...
本文将详细介绍如何利用多叉树模型以及MySQL数据库来实现无限级分销系统中的关系查询。 #### 多叉树模型介绍 多叉树是一种非线性数据结构,每个节点可以拥有多个子节点。在无限级分销系统中,每个用户都可以有多个...
1、数据库通过设置父类ID来进行唯一索引,然后使用函数的递归调用实现无限分类; 2、数据库设计通过特定格式进行排列,然后使用mysql查询关键函数:concat。程序实现比较简单; 3、第三种不是太了解, 好像要...
<?PHP ... charset=utf-8"); $link = mysql_connect('localhost','root','eric') or die(mysql_error());... }这是一个PHP无限级分裂的实现库,有递归 非递归俩种方法。需要的朋友可以下载使用。
阻塞模式等待消息,非阻塞模式可能返回错误。 7. Apache MPM机制: 包括Prefork、Worker、Event等,配置文件调整MPM以适应PHP。 8. PHP在Apache的运行方式: 有mod_php、FastCGI、SSI等,FastCGI通过`php-fpm`...