Autor | Zpráva | ||
---|---|---|---|
Akali Profil |
Ahoj. Snad pochopíte můj problém..
Potřebuji nějak udělat vypisování menu z databáze. Vysledek by měl být asi takový-> <h1>Hlavní menu</h1> odkaz v hlavním menu odkaz v hlavním menu <h1>Podmenu 1</h1> odkaz v podmenu 1 odkaz v podmenu 1 odkaz v podmenu 1 <h1>Podmenu 2</h1> odkaz v podmenu 2 odkaz v podmenu 2 odkaz v podmenu 2 Když napíšu do souboru na tvrdo <h1>Hlavní menu</h1> a zde provedu vípis odkazů z databáze tak je mi to vše jasné. Ale jak udělat abych yypisoval kategorie menu (Hlavní menu, podmenu 1, podmenu 2) a pod každou z této kategorie teprve vypsal odkazy? |
||
Tori Profil |
#2 · Zasláno: 8. 4. 2013, 12:10:28
Tohle je myslím stejný princip: Nejčastější potíže s PHP (FAQ) » Nadpis skupiny nejen při výpisu z databáze
|
||
Akali Profil |
#3 · Zasláno: 8. 4. 2013, 13:05:36
Aha, tak zde jsem se toho nedohledal :-).. Příště se pokusím hledat líp : )
Už mi to sice funguje, ale potřeboval bych ty pododkazy zabalit do <ul> $pamet = ''; while ($radek = mysqli_fetch_array($objekt_vysledku)) { if ($radek['kategorie'] != $pamet) { $pamet = $radek['kategorie']; echo "<div id=\"menu\">".$radek['kategorie']."</div><ul>"; } echo '<li><a href="stranka.php?id='.$radek['id'].'&kategorie='.$radek['menu'].'">',$radek['menu'],'</a></li>'; } |
||
Tori Profil |
#4 · Zasláno: 8. 4. 2013, 14:06:49
Podmínkou na řádku 4 zjistíte začátek nové kategorie. Pokud je to první iterace (= neukončovat seznam),
$pamet bude mít výchozí hodnotu. Plus navíc jedno uzavření za cyklem.
|
||
Akali Profil |
#5 · Zasláno: 8. 4. 2013, 18:15:00
Čím víc si to čtu, tím míň tomu rozumím :-o
|
||
Tori Profil |
Akali:
„Čím víc si to čtu, tím míň tomu rozumím“ Pardon, mám dneska nějaký nesrozumitelný den. :-) $pamet = ''; while ($radek = mysqli_fetch_array($objekt_vysledku)) { if ($radek['kategorie'] != $pamet) { if ($pamet !== '') echo '</ul>'; $pamet = $radek['kategorie']; echo "<div id=\"menu\">".$radek['kategorie']."</div><ul>"; } echo '<li><a href="stranka.php?id='.$radek['id'].'&kategorie='.$radek['menu'].'">',$radek['menu'],'</a></li>'; } // edit: doplněna podmínka pro případ, že by v DB nebyly žádné záznamy. if ($pamet !== '') echo '</ul>'; |
||
Akali Profil |
#7 · Zasláno: 9. 4. 2013, 10:36:21
Tak takhle bych to z toho textu nepochopil :-). Vůbec se nemlouvejte
Poklona a velké díky! |
||
Tori Profil |
Ještě jsem zapomněla jednu drobnost, doplněno.
Bylo by to srozumitelnější takhle? „Potřebujete uzavřít seznam po každé kategorii. Podmínkou na ř.4 zjišťujete, jestli začíná další kategorie, takže tam přidáte </ul> před <div> , s výjimkou úplně první kategorie (před ní se seznam neotevíral). Jestli to je první kategorie zjistíte podle toho, že v $pamet je ještě výchozí hodnota (z řádku 1). Seznam z poslední kategorie uzavřete až za cyklem (ale jen v případě, že cyklus alespoň jednou proběhl, jinak by nebylo co zavírat).“
|
||
Akali Profil |
#9 · Zasláno: 9. 4. 2013, 11:58:00
To už možná jo. Teď je mi to všechno jasné, když vidím hotový kód (takže těžko říct, jestli bych to dokázal takto dát dokupy)
děkuju ještě jednou : ) |
||
Časová prodleva: 11 let
|
0