我的行有相关的行,这些行可以有相关的行。这棵树可以下降很多层次(未知)。如何根据一个参数找到树的级别数?
例如:
select * from category a
inner join category b on a.row=b.relatedRow
inner join category c on b.row=c.relatedRow where a.row=?
因此,如果a
中有项目,则为1级。如果b
,级别2中有项目,依此类推。通过这种方式,我可以发现,如果row = 1,则有3个级别的其他相关项目。
答案 0 :(得分:0)
创建两个php函数,一个用于获取主类别,另一个用于获取主类别的子类别。
function GetCategory($Cat_Id, $Cat_Name="")
{
$level = "";
echo $sql = "SELECT * FROM category WHERE 1=1 AND Cat_ParentId='0'";
$result = @mysql_query($sql);
while($row = @mysql_fetch_assoc($result))
{
if(!empty($Cat_Id))
{
if($row['Cat_Id']==$Cat_Id)
{
$selected = "selected='selected'";
}
else
{
$selected = "";
}
}
else
{
$selected="";
}
$resul .= $level.$row['Cat_Name']."<br />";
$resul .= GetSubCateogry($row['Cat_Id'], $level);
}
return $resul;
}
function GetSubCateogry($Cat_Id, $level)
{
$level .= "--";
$sql = "SELECT * FROM category WHERE Cat_ParentId = '$Cat_Id'";
$result = @mysql_query($sql);
while($row = @mysql_fetch_assoc($result))
{
if(!empty($Cat_Id))
{
if($row['Cat_Id']==$Cat_Id)
{
$selected = "selected='selected'";
}
else
{
$selected = "";
}
}
else
{
$selected="";
}
$resul .= $level.$row['Cat_Name']."<br />";
$resul .= GetSubCateogry($row['Cat_Id'], $level);
}
return $resul;
}
echo GetCategory(1);