php+mysql不用递归实现的无限级分类实例(非递归)


Posted in PHP onJuly 08, 2014

要实现无限级分类,递归一般是第一个也是最容易想到的,但是递归一般被认为占用资源的方法,所以很多系统是不考虑使用递归的
本文还是通过数据库的设计,用一句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>';  
}  
?>  

$conn = mysql_connect ( 'localhost', 'root', 'root' );
mysql_select_db ( 'wanggou123', $conn );
mysql_query ( 'set names UTF8' );
$sql = "select id,concat(catpath,'-',id) as abspath,name from category order by abspath";
 
$query = mysql_query ( $sql );
while ( $row=mysql_fetch_array($query)) {
  /**
  * 第一种展示方法
*/
/*$space = str_repeat ( '    ', count ( explode ( '-', $row ['abspath'] ) ) - 1 );
echo $space . $row ['name'] . '
';*/
/**
 第二种展示方法
*/
$space = str_repeat ( '——', count ( explode ( '-', $row ['abspath'] ) ) - 1 );
$option .= '' . $space . $row ['name'] . '<Br>';
}
echo $option;
exit();
echo '<select name="opt">' . $option . '</select>';

其中$nbs是数据库操作类,此方法简单明了!

PHP 相关文章推荐
cache_lite试用
Feb 14 PHP
深入PHP异步执行的详解
Jun 03 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
Jul 03 PHP
php中如何同时使用session和cookie来保存用户登录信息
Jul 05 PHP
PHP入门之常量简介和系统常量
May 12 PHP
PHP高级编程实例:编写守护进程
Sep 02 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
Dec 19 PHP
PHP内核学习教程之php opcode内核实现
Jan 27 PHP
PHP从二维数组得到N层分类树的实现代码
Oct 11 PHP
PHP回调函数与匿名函数实例详解
Aug 16 PHP
实例分析基于PHP微信网页获取用户信息
Nov 24 PHP
PHP 超级全局变量相关总结
Jun 30 PHP
PHP生成短网址的3种方法代码实例
Jul 08 #PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
Jul 08 #PHP
php中函数前加&amp;符号的作用分解
Jul 08 #PHP
PHP实现的连贯操作、链式操作实例
Jul 08 #PHP
PHP类中的魔术方法(Magic Method)简明总结
Jul 08 #PHP
PHP的魔术常量__METHOD__简介
Jul 08 #PHP
PHP中的插件机制原理和实例
Jul 08 #PHP
You might like
基于qmail的完整WEBMAIL解决方案安装详解
2006/10/09 PHP
php结合表单实现一些简单功能的例子
2011/06/04 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
详解Angular 自定义结构指令
2017/06/21 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
nuxt框架中路由鉴权之Koa和Session的用法
2018/05/09 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
微信小程序之swiper滑动面板用法示例
2018/12/04 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
原生js实现Flappy Bird小游戏
2018/12/24 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
微信小程序之高德地图多点路线规划过程示例详解
2021/01/18 Javascript
[02:33]2018DOTA2亚洲邀请赛赛前采访——LGD
2018/04/04 DOTA
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
PyQt5实现简易电子词典
2019/06/25 Python
python Zmail模块简介与使用示例
2020/12/19 Python
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
比驿:全球酒店比价网
2018/06/20 全球购物
青年志愿者事迹材料
2014/02/07 职场文书
理工学院学生自我鉴定
2014/02/23 职场文书
保险公司年会主持词
2014/03/22 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书
2015年招聘工作总结
2014/12/12 职场文书
三峡人家导游词
2015/01/31 职场文书
高考1977观后感
2015/06/04 职场文书
导游词之澳门妈祖庙
2019/12/19 职场文书
python使用pygame创建精灵Sprite
2021/04/06 Python
python基础学习之递归函数知识总结
2021/05/26 Python
python和anaconda的区别
2022/05/06 Python