问题描述
|
这是我的代码,它显示所有类别,例如
一种
-A.1
-A2
乙
-B.1
-B.2
现在我只希望它显示
A.1
A2
B.1
B.2
任何想法?
function current_categories($m,$id){
$cat_array=array();
$sql = \"select * from `category`\";
$query = DB::Query($sql);
while($row = DB::fetch_array($query)){
$cat_array[] = array($row[\'id\'],$row[\'name\'],$row[\'classid\'],$row[\'sort\']);
}
if($id==\"\"){
$id=0;
}
$n = str_pad(\'\',$m,\'-\',STR_PAD_LEFT);
$n = str_replace(\"-\",\" \",$n);
for($i=0;$i<count($cat_array);$i++){
if($cat_array[$i][2]==$id){
echo \"<li>\".\"<a href=\\\"/team/index.PHP?gid=\".$cat_array[$i][0].\"\\\">\".$cat_array[$i][1].\"</a></li>\";
current_categories($m+2,$cat_array[$i][0]);
}
}
}
解决方法
我不知道您为顶级classid值输入了什么作为classid的值。是NULL还是-1?
function second_level_categories(){
$sql = \" SELECT lvl2.* FROM `category` as lvl1 \"
.\" JOIN `category` as lvl2\"
.\" ON lvl1.id = lvl2.parent_id\"
.\" WHERE lvl1.parent_id=VALUE_FOR_TOP_LEVEL\"
.\" ORDER BY lvl1.sort ASC,lvl2.sort ASC\"
$result = DB::Query($sql);
while($category = DB::fetch_array($result)){
echo \'<li><a href=\"/team/index.php?gid=\'.$category[\'id\'].\'\">\"\';
echo $category[\'name\'];
echo \'</a></li>\';
}
}