Einzelnen Beitrag anzeigen
  #10  
Alt 23.08.2004, 21:56:41
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Sehr schön wäre das Ganze auch mit Hilfe einer Datenbank möglich:

Tabelle navi:
id int(11) auto_increment
topmenu int(11) NOT NULL default '0'
label varchar(255)
url varchar(255)

Wenn die Spalte topmenu 0 ist, bedeutet dies, dass dieser Link die oberste Kategorie ist. Ansonsten steht in topmenu die Idee des Links, dem dieser Link untergeordnet ist.

PHP-Code:
<?php
    $sql 
"SELECT
                id,
                topmenu,
                label,
                url
            FROM
                navi
            ORDER BY
                id"
;
    
$result mysql_query($sql);
    while(
$row mysql_fetch_array($result)) {
        
$menudetails[$row['id']] = $row;
        
$topmenu[$row['topmenu']] = $row['id'];
    }

    function 
CreateMenu($id)
    {
        echo 
'<ul>';
        echo 
'<li><a href="' $menudetails[$id]['url'] . '">' $menudetails[$id]['label'] . '</a>';

        if(
is_array($topmenu[$id])) {
            foreach(
$topmenu[$id] as $subKat) {
                
CreateMenu($subKat);
            }
        }
        echo 
'</ul>';
    }

    foreach(
$topmenu[0] as $topKat) {
        
CreateMenu($topKat);
    }
?>
Ungetestet, aber das Prinzip sollte klar werden.
Mit Zitat antworten