很简单的php无限分类递归的实现方法,php 最大分类不能超过200级。
添加分类页面:
add.html添加分类页面:
添加分类require "function.php";
$fid=$_GET['cate'];
$title=$_GET['title'];
if(isset($fid) and isset($title)){
add($title,$fid);//如果接收到分类id和分类名就添加到数据库
}
?>
分类选择: | 默认 function menu($fid=0,$levels){//循环分类 for($n=0;$n $nv.=' '; //拼接空格 } $nv.='|--'; //分类图标 $levels++; //添加分类级别 $sql="select * from category where fid={$fid} order by id asc"; $res =mysql_query($sql); if($res && mysql_affected_rows()){ //查找子分类,如果有子分类就继续遍历下级子分类 while($v=mysql_fetch_array($res)){ echo "{$nv}{$v['title']}"; menu($v['id'],$levels); //递归下级分类,如果有子类 } } } menu(0,1);//调用 ?> |
类别名称: | |
所有分类: | lists(0,0); ?> |
function.php页面:<?php
header("content-type:text/html;charset=utf-8");
$conn = mysql_connect('localhost','root','');
mysql_select_db('test');
mysql_query('set names utf8'); //连接数据库
function add($title,$fid){
$sql="insert into category (title,fid) values ('$title','$fid')";
if(mysql_query($sql)){
echo ''; //添加分类
}
}
function lists($fid,$level){ //遍历所有分类
for($n=0;$n
$nv.=' ';
}
$nv.='|--';
$level++;
$sql="select * from category where fid={$fid} order by id asc";
$r=mysql_query($sql);
if($r && mysql_affected_rows()){ //如果有下级分类就遍历下去
while($val=mysql_fetch_array($r)){
echo "
{$val['fid']}{$nv}{$val['title']}{$i}
";lists($val['id'],$level);
}
}
}
?>
数据库设置了三个字段 id title fid