PHP实现查询多级分类的程序代码
算法的数据库结构设计最为简单。category表中一个字段id,一个字段fid(父id)。这样可以根据WHERE id = fid来判断上一级内容,运用递归至最顶层
我们先查出数组
代码如下 | 复制代码 |
<?php $a = array( 'AAAAAA' => array( 'aaaaaa' => array( '111111', '222222', '333333' ), 'bbbbbb' => array( '111111', '222222', '333333' ), 'cccccc' => array( '111111', '222222', '333333' ), ), 'BBBBBB' => array( 'aaaaaa' => array( '111111', '222222', '333333' ), 'bbbbbb'=> array( '111111', '222222', '333333' ), 'cccccc'=> array( '111111', '222222', '333333' ), ), 'CCCCCC' => array( 'aaaaaa'=> array( '111111', '222222', '333333' ), 'bbbbbb'=> array( '111111', '222222', '333333' ), 'cccccc' => array( '111111', '222222', '333333' ), ), ); foreach ($a as $k=>$v){ echo $k."<br>"; // if(is_array($v)){ foreach($v as $key=>$val){ echo " ".$key."<br>"; // } if(is_array($val)){ foreach($val as $kkk=>$vall){ echo " ".$vall."<br>"; } } } echo "<br>"; } /*******mysql查询无限级分类的代码******/ /*** $sql = "SELECT a.Title AS big, b.Title AS small FROM largeTitle AS a LEFT JOIN smallTitle AS b ON a.ID=b.LargeID"; $a = array(); $r = mysql_query($sql); while( $arr = mysql_fetch_array($r)){ $a[$arr['big']] = $arr['small']; } ***/ ?> |
好了下面先读取数据库然后再递归读出
分类表,比如category,字段有 id,parentid,title
代码如下 | 复制代码 |
//查询 |
其它的方法,设置fid字段类型为varchar,将父类id都集中在这个字段里,用符号隔开,比如:1,3,6
这样可以比较容易得到各上级分类的ID,而且在查询分类下的信息的时候,
可以使用:SELECT * FROM category WHERE pid LIKE “1,3%”。
代码如下 | 复制代码 |
-- /** //获得root左边和右边的值 |
好了 只要这样所有的分类都可以一次性查询出来了,而不用通过递归了。
本文地址:http://www.phprm.com/code/45097.html
转载随意,但请附上文章地址:-)