只有不足100行代码,不要提为什么没有OO了。。。
//无限分类,主要思想是这样的,用fid 来记录该类的上一级ID,通过fid和id建立起上下级的关系。
<?php
$conn = mysql_connect("localhost","root","root") or die("数据库连接失入");
mysql_select_db("new",$conn);
?>
分类:<select name="fid">
<?php
function mainfl()
{
global $conn;
$result=mysql_query("select id,fid,name from a where fid=0 order by id ",$conn);//这里默认的fid=0,表示这是第一级。通过这个可以查出所有fid=0的项,即所有的第一级主类
if ($myrow=mysql_fetch_array($result))
{
do {
?>
<option value=<?php echo $myrow["id"];?>><?php echo $myrow["name"];?></option>//$myrow["id"]输出主类的ID为查询子类做准备,$myrwo["name"]主类名字
<?php echo subfl($myrow["id"],"--");?>//调用子类函数subfl,使用--連接
<?php
}
while ($myrow=mysql_fetch_array($result));
}
}
//定义子级分类
function subfl($fid,$tag)//$fid那是主类ID,$tag为连接符
{
global $conn;
$result1=mysql_query("select id,fid,name from a where fid=$fid order by id",$conn);//查询出fid=$fid的所有面,这里的$fid值为$myrow["id"]
if ($myrow1=mysql_fetch_array($result1))
{
do {
?>
<option value=<?php echo $myrow1["id"];?>><?php echo $tag.$myrow1["name"];?></option>//输出子类
<?php
subfl($myrow1["id"],"-".$tag);
}
while ($myrow1=mysql_fetch_array($result1));
}
}
echo mainfl();
?>
</select>
//下面有一个完整的无限分类的添加,删除,修改。
//数据库结构相当简单
//ID 自动增加
//name 记录名称
//fid 记录上级ID,默认为0
本文介绍了一种基于PHP的无限分类实现方案,通过递归查询数据库来构建多级分类结构。使用fid字段建立层级关系,适用于论坛、商品分类等场景。
3943

被折叠的 条评论
为什么被折叠?



