很简单的php无限分类递归的实现方法,php 最大分类不能超过200级。
添加分类页面:
add.html添加分类页面:
<html>
<head>
<title>添加分类</title>
<meta charset="utf-8">
</head>
<body>
<?php
require "function.php";
$fid=$_GET['cate'];
$title=$_GET['title'];
if(isset($fid) and isset($title)){
add($title,$fid);//如果接收到分类id和分类名就添加到数据库
}
?>
<table>
<form action="add.php" method="get">
<tr>
<td>分类选择:</td>
<td>
<select name="cate">
<option value="0">默认</option>
<?php
function menu($fid=0,$levels){//循环分类
for($n=0;$n<$levels;$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 "<option value="{$v['id']}">{$nv}{$v['title']}</option>";
menu($v['id'],$levels); //递归下级分类,如果有子类
}
}
}
menu(0,1);//调用
?>
</select>
</td>
</tr>
<tr>
<td>类别名称:</td>
<td>
<input type="text" name="title" />
</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="提交" /></td>
</tr>
</form>
<tr>
<td>所有分类:</td>
<td>
<?php
lists(0,0);
?>
</td>
</tr>
</table>
</body>
</html>
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 '<script>alert('添加分类成功');window.location.href='add.php'</script>'; //添加分类
}
}
function lists($fid,$level){ //遍历所有分类
for($n=0;$n<$level;$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 "<p>{$val['fid']}{$nv}{$val['title']}{$i}</p>";
lists($val['id'],$level);
}
}
}
?>
数据库设置了三个字段 id title fid
(南京欣才PHP培训机构)