2011-08-25 58 views
1

這裏是我的代碼:PHP遞歸面包屑與類別名稱

function printBreadCrumb($id,$level=0) { 

    $levelNames=array('Year','Model','Serie','Maker'); 
    $query = "SELECT * FROM category WHERE del=0 AND id=".$id." LIMIT 0,1"; 
    $res = mysql_query($query) or die($query); 
    while ($row = mysql_fetch_array($res)) { 

     $link = "<a href=\"index.php?parent_id=".$row['parent_id']. 
       "\">".$levelNames[$level].":".$row['name']."</a>"; 

     $bc .= $level==0 ? $link : $link . ' > ' ; 
     $parent_id = $row['parent_id']; 

     printBreadCrumb($parent_id,$level+1); 
    } 
    echo $bc.""; 
    } 

功能工作正常,我可以看到正確的類別名稱。
我想要什麼:顯示哪個levelName屬於該項目。

例如:製造商:BMW>意甲:3>型號:320>年份:2009

現在我的代碼只能在最深cateyory [年]。如果我去了一個級別,我得到這樣的:

意甲:BMW>型號:3>年份:320

回答

1

我覺得你的水平PARAM您進入功能在第一時間問題,因爲代碼是罰款。你應該檢查你的函數調用。也許你總是打電話給$ level = 0。

此外,你應該刪除,因爲你總是隻有一個記錄。 而不是你應該使用簡單的$ row = mysql_fetch_array($ res);