Autor Zpráva
iru
Profil
Zdravím všechny.

nevíte někdo, jak na dynamicky generované menu? Přesněji řečeno, potřebuji data získaná z databáze vypsat do stromové struktury. Jedná se o kategorie, které mohou být libovolně zanořené a libovolné množství. Pomocí rekurze se mě je podařilo vypsat pod sebe, ale chtěla bych dosáhnout toho, aby to vypadalo trochu líp, byly tam zobrazeny vazby mezi zanořením (co pod co patří). Díky.
zbystr
Profil *
jak to mas ulozene v DB?
tiso
Profil
http://css.interval.cz/clanky/mapa-webu-reseni/
iru
Profil
v db to mám uložené takhle:
id_kategorie
nazev_kategorie
podkat (je rovno id kategorie ke které patří)
zanoreni (úroveň zanoření)

a výpis vypadá takhle:

function vypis($podkat, $zanoreni){
$result= mysql_query('select * from kategorie where podkat='.$podkat);
while($row=mysql_fetch_assoc($result)) {
echo str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", $row['level'])."<a href='sprava_hlavni.php?id=2&id_kategorie=".$row['id_kategorie']."&naz ev_kategorie=".$row['nazev_kategorie']."' title='".$row['nazev_kategorie']."'>".$row['nazev_kategorie']."</a><br />";
vypis($row['id_kategorie'], $zanoreni++);
}
}


vypis(1,1);

líbí se mi řešení jak uvádí tiso, ale nevím jak to dostat do seznamu
zbystr
Profil *
ja bych to resil jinak a podle mne se k tomu lepe pristupuje. Ale zalezi na tom, kolik chces mi urovni menu

osobne bych to resil treba takto:
tabulka menu:
id, nazev
tabulka submenu:
id, nazev, id_menu

k tomu se da potom uz pristupovat mnohem lepe.

ale jak rikam, zalezi kolik chces mit texh urovni, toto se da celkem jeste obsluhovat, pokud mas 3 urovne, tedy menu, submenu, subsubmenu .... ale do vice bych s timto pristupem nesel ...
iru
Profil
no právě, bohužel podmínka je, aby těch úrovní bylo neomezeně. Konečný uživatel si je bude přidávat a mazat. To se mě celkem už podařilo vyřešit. Zbývá mě jen trochu slušně zobrazit strukturu celého stromu....
iru
Profil
Zkoušela jsem provést výpis jako seznam, ale neúspěšně. Tak nevím co s tím....
stribny
Profil
Staci mit jednu tabulku a v ni polozku IDcka horniho menu, ke kteremu patri. Hlavni (nejvyssi) menu pak bude mit ve sloupecku NULL.

iru: Nechapu, co je tezkeho na vypsani menu jako seznamu, nic se na tom zkazit neda..
iru
Profil
Staci mit jednu tabulku a v ni polozku IDcka horniho menu, ke kteremu patri.
to mám, je to sloupeček "podkat"

Nechapu, co je tezkeho na vypsani menu jako seznamu, nic se na tom zkazit neda..
Možná na to jdu špatně, třeba je jednodušší řešení....

Zkoušela jsem to takhle:

function vypis($podkat, $zanoreni){
$result= mysql_query('select * from kategorie where podkat='.$podkat);
while($row=mysql_fetch_assoc($result)) {
$id_kategorie = $row['id_kategorie'];

$result1=mysql_query('select * from kategorie where podkat='.$id_kategorie);
$pocet=mysql_num_rows($result1);



echo "<li><a href='sprava_hlavni.php?id=2&id_kategorie=".$row['id_kategorie']."&naz ev_kategorie=".$row['nazev_kategorie']."' title='".$row['nazev_kategorie']."'>".$row['nazev_kategorie']."</a>";


if ($pocet=="0") {
//echo $pocet;
}
else{

echo "<ul>";
//echo $pocet;
$ul="true";
}
vypis($row['id_kategorie'], $zanoreni++);



if ($ul == "true") {
echo "</ul>";
$ul = ""; }
}
}


vypis(1,1);





Tam, kde dochází k větvení se sice vypíše <ul>, ale vypíše se i u všech dalších položek tohoto uzlu. Potřebovala bych ho jen dostat před první položku daného uzlu a za poslední aby se uzavřel....

Jeslti někdo víte jak na to, poraďte prosím...
Toto téma je uzamčeno. Odpověď nelze zaslat.

0