您的位置:首页 > 编程语言 > PHP开发

PHP+MySQL无限级分类(非递归)

2014-05-21 16:17 471 查看
要实现无限级分类,递归一般是第一个也是最容易想到的,但是递归一般被认为占用资源的方法,所以很多系统是不考虑使用递归的

本文还是通过数据库的设计,用一句sql语句实现

数据库字段大概如下:
字段说明
id编号
parend_id父分类编号
class_name分类名
path分类路径,以 id 为节点,组成类似 ,1,2,3,4, 这样的字符串
可以假设有如下的数据:
idparent_idclass_namepath
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,
01
<?php
02
$sql
=
"SELECT
* FROM tree order by path"
;
03
$query
=
$db
->query(
$sql
);
04
while
(
$rows
=
$db
->fetch_array(
$query
))
{
05
if
(substr_count(
$rows
[
'path'
],
','
)
> 2) {
06
for
(
$i
=0;
$i
<(substr_count(
$rows
[
'path'
],
','
)
- 2);
$i
++)
{
07
echo
'
'
;
08
}
09
}
10
echo
$rows
[
'class_name'
]
.
'<br
/>'
;
11
}
12
?>
其中$db是数据库操作类,此方法简单明了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: