Autor | Zpráva | ||
---|---|---|---|
hrouda Profil |
#1 · Zasláno: 16. 12. 2013, 07:58:03
Zdravím,
mám tabulku kategorie, kde mám: ID nazev id_nadkategorie 1 trička 0 2 pan. tr. 1 pan. tr. = pánské trička ( tady jsem to zkrátil at se to vleze) a tabulku nadkategorie id nazev 1 tricka 2 panske tricka a tak mám asi 25 záznamů, a nemůžu přijít na to jak napsat sript aby se mi v odrážkách udělal strom těch kategorií. Zkoušel jsem : <?php include "dbc.php" $vysledek = ("SELECT nazev FROM kategorie, nadkategorie WHERE kategorie.id_nadkategorie = nadkategorie.id LIKE '1'"); while ($dotaz = mysql_fetch_row($vysledek)){ echo "<li>".$dotaz[nazev]."</li>"; } ?> Ale neúspěšně. Nevypíše to ani čárku. |
||
Taps Profil |
hrouda:
zkus SELECT nazev FROM kategorie, nadkategorie WHERE kategorie.id_nadkategorie = nadkategorie.id AND nadkategorie.id=1 |
||
hrouda Profil |
výsledek je pořád stejný, nic to nevypíše
|
||
anonymní Profil * |
#4 · Zasláno: 16. 12. 2013, 08:33:41
nikde nevoláš mysql_query. Nevím, proč máš dvě tabulky, když bohatě stačí jedna. A nakonec, stromová data to vypisovat nemůže, nikde neotevíráš zanořené seznamy, píšeš jen samá LI.
Tvůj dotaz ani žádný strom vypsat nemůže. „Nazev“ není jednoznačný (je v obou tabulkách), pracuješ jen s jednou nadkategorií (id=1), nevím, jak by takový strom vypadal. SQL dotaz bude: SELECT id, nazev FROM kategorie ORDER BY id_nadkategorie ASC V kódu si pak ukládej stav poslední nadřazené kategorie a v momentě, kdy bude odlišná od současné, otevřeš nový zanořený seznam. |
||
hrouda Profil |
#5 · Zasláno: 16. 12. 2013, 08:38:45
To ukládání provedu prosímtě jak ?
Upravil sem to tak: <?php include "dbc.php"; $vysledek = ("SELECT id, nazev FROM kategorie ORDER BY id_nadkategorie ASC"); while ($dotaz = mysql_fetch_array($vysledek)){ echo "<li>".$dotaz[nazev]."</li>"; } ?> |
||
anonymní Profil * |
#6 · Zasláno: 16. 12. 2013, 08:39:53
hrouda:
přiřazení do proměnné. Chtělo by to naučit se nejprve základy jazyka, než se pouštět do nějakého e-shopu. Nebo i placeného projektu malého rozsahu. |
||
hrouda Profil |
#7 · Zasláno: 16. 12. 2013, 08:41:02
Praveze se ted ucim, tak uvitam kazdou radu :-))
|
||
anonymní Profil * |
#8 · Zasláno: 16. 12. 2013, 08:50:38
hrouda:
rady jsi dostal, během těch pár okamžiků mezi reakcemi nemáš ani šanci si je pořádně přečíst a promyslet. Natožpak prostudovat a snažit se na řešení přijít. Očekáváš jen dodaný kompletní kód, který ode mě nečekej. Návodné rady máš, ani v kódu v [#5] není to, co bylo razeno dříve. |
||
hrouda Profil |
Chybu proč nevypisuje sem našel, jen musim nejak upravit dotaz protoze výsledek je:
Tricka Ponozky Bundy Boty Dámské tri?ka Panské tri?ka Zimní ponožky Podzimní ponožky Letní ponožky Jarní ponožky Letní bundy Zimní bundy Tenisky Gumáky Papuče Pánské tri?ka s krátkým rukávem Pánské trička s dlouhým rukávem Dámské tricka s krátkým rukávem Dámské trička s dlouhým rukávem Dětské letní bundy Pánské letní bundy Dámské letní bundy Pánské zimní bundy Dámské zimní bundy Dětské zimní bundy A já potřebuju aby to bylo: kategorie -podkategorie --podkategorie ---podkategorie To by mělo teda vyřešit otvírání zanořených seznamů jo ? |
||
anonymní Profil * |
#10 · Zasláno: 16. 12. 2013, 09:29:55
hrouda:
„To by mělo teda vyřešit otvírání zanořených seznamů jo ?“ samozřejmě, myslíš, že to píšu jen tak? Jak by podle tebe mělo samotné HTML nebo CSS poznat, kde si ráčíš mít zanoření a kde ne? |
||
Taps Profil |
#11 · Zasláno: 16. 12. 2013, 09:30:49
hrouda:
Pro inspiraci http://php.vrana.cz/traverzovani-kolem-stromu-prakticky.php |
||
hrouda Profil |
#12 · Zasláno: 16. 12. 2013, 09:39:33
přijdu si jak maďar
|
||
martin1312 Profil |
#13 · Zasláno: 16. 12. 2013, 18:49:12
Taps:
traverzovanie je myslím pre začiatočníka veľké sústo, teda ak treba dáta aj spravovať, nie len vypisovať. Poradil by som skôr klasické (nie vhodné) vypisovanie rekurzívnou funkciou a so stĺpcom "parent_id". |
||
Taps Profil |
#14 · Zasláno: 16. 12. 2013, 22:33:00
martin1312:
Možná by nebylo na škodu toto diskusní téma obohatit i o tvoji praktickou verzi, určitě se to bude někomu dalšímu hodit |
||
martin1312 Profil |
#15 · Zasláno: 16. 12. 2013, 22:55:23
V tomto článku je to popísané http://wizardinternetsolutions.com/articles/web-programming/single-query-dynamic-multi-level-menu
Príklad nerobí rekurzívne dotazovanie do databázy ale najskôr dáta natiahne do PHP a v ňom sa rekurzívne vypisujú, teda je to podľa mňa lepšie riešenie ako dotaz v cykle (na úkor pamäte pri php). |
||
Časová prodleva: 10 let
|
0