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 相关文章推荐
下载文件的点击数回填
Oct 09 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
Nov 02 PHP
php中一个完整表单处理实现代码
Nov 10 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
Jul 16 PHP
PHP源码分析之变量的存储过程分解
Jul 03 PHP
JavaScript实现滚动栏效果的方法
Apr 27 PHP
PHP生成随机字符串(3种方法)
Sep 25 PHP
php版微信公众平台之微信网页登陆授权示例
Sep 23 PHP
PHP登录(ajax提交数据和后台校验)实例分享
Dec 29 PHP
php中Redis的应用--消息传递
Mar 28 PHP
PHP7匿名类的用法示例
Apr 05 PHP
php弹出提示框的是实例写法
Sep 26 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
JQuery 学习笔记 选择器之四
2009/07/23 Javascript
javascript 动态生成私有变量访问器
2009/12/06 Javascript
JS实现self的resend
2010/07/22 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
js仿百度贴吧验证码特效实例代码
2014/01/16 Javascript
jquery 取子节点及当前节点属性值的方法
2014/08/24 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
2017/11/28 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
vue获取form表单的值示例
2019/10/29 Javascript
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
JavaScript中使用Spread运算符的八种方法总结
2020/06/18 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
Python列表list数组array用法实例解析
2014/10/28 Python
Python编程之序列操作实例详解
2017/07/22 Python
快速查询Python文档方法分享
2017/12/27 Python
Python 25行代码实现的RSA算法详解
2018/04/10 Python
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
python 实现逻辑回归
2020/12/30 Python
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
最新的互联网创业计划书
2014/01/10 职场文书
校三好学生主要事迹
2014/01/11 职场文书
出国导师推荐信
2014/01/16 职场文书
提拔干部考察材料
2014/05/26 职场文书
党员争先创优承诺书
2015/01/20 职场文书
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL