2011-06-23 70 views
-2

這是我的代碼,它顯示了所有的類別等如何查詢第二級別類別?


-A.1
-A.2

-B.1
-B.2

現在我想要它只顯示

A.1
A.2
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]); 
     } 
    } 
} 
+6

你是什麼類別的表結構? – mhitza

+0

如果我理解正確,這是一個遞歸函數,它會多次調用'select * from category'來顯示分類的分類列表? –

+1

**你在做什麼?你正在將一個完美的關聯數組轉換成一個數字索引的數組($ row) – phant0m

回答

1

我不知道你把什麼值作爲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>'; 
    } 
} 
+0

感謝您的幫助,classid實際上是parent_id。我輸入了錯誤 – vzhen

+0

然後呢? (我修正了一個小錯誤btw) – phant0m

相關問題