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 相关文章推荐
PHP 和 MySQL 开发的 8 个技巧
Oct 09 PHP
常用的php ADODB使用方法集锦
Mar 25 PHP
PHP MVC模式在网站架构中的实现分析
Mar 04 PHP
让PHP开发者事半功倍的十大技巧小结
Apr 20 PHP
解析PHP中常见的mongodb查询操作
Jun 20 PHP
getJSON跨域SyntaxError问题分析
Aug 07 PHP
destoon文章模块调用企业会员资料的方法
Aug 22 PHP
php读取csv数据保存到数组的方法
Jan 03 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
Apr 26 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 PHP
PHP实现微信商户支付企业付款到零钱功能
Sep 30 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
Sep 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
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
两个php日期控制类实例
2014/12/09 PHP
php下Memcached入门实例解析
2015/01/05 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
Javascript中string转date示例代码
2013/11/01 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
JavaScript中的函数(二)
2015/12/23 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
详解ES6 Symbol 的用途
2018/10/14 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
2018/11/13 Javascript
微信小程序自定义toast弹窗效果的实现代码
2018/11/15 Javascript
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
解决python写的windows服务不能启动的问题
2014/04/15 Python
python基础教程之常用运算符
2014/08/29 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Python中functools模块的常用函数解析
2016/06/30 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
python基础教程之while循环
2019/08/14 Python
Django发送邮件功能实例详解
2019/09/02 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
捷克家居装饰及图书音像购物网站:Velký košík
2018/04/16 全球购物
社区科普工作方案
2014/06/03 职场文书
领导班子作风建设剖析材料
2014/10/11 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis