2011-08-25 59 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);