Autor Zpráva
hyspanak
Profil *
Ahoj, potřeboval bych vygenerovávat následující strukturu, ale nevím jak nejjednoduššeji to udělat.

databáze struktura: id name parent
databáze data: 1 tema 0
2 podtema 1
3 podtema2 1
4 nejtema 2
5 tema2 0
6 pod2 5
atd..

Chtěl bych poslat dotaz z GETU. Tudíš např. url: index.php?id=4. A tohle by mělo vrátit strukturu:

tema
podtema
nejtema
podtema2

Tudíš potřebuju, aby to sledovalo "rodiče" až do úplnýho začátku a pak vypsalo celou "cestu" a i ostatní "děti" daného "rodiče".
Jak něco takového udělat? MySQL nebo nějaký složitější skriptík v php? Jaký?
hyspanak
Profil *
Takhle je to přehlednější :-)
databáze struktura: id     name     parent
databáze data:        1      tema         0
                                 2     podtema   1
                                 3     podtema2 1
                                 4     nejtema    2
                                 5     tema2        0
                                 6     pod2         5
atd..

Chtěl bych poslat dotaz z GETU. Tudíš např. url:  index.php?id=4. A tohle by mělo vrátit strukturu:

tema
  podtema
    nejtema
  podtema2
Nox
Profil
Nebo snad pomůže: http://interval.cz/clanky/metody-ukladani-stromovych-dat-v-relacnich-d atabazich/
Str4wberry
Profil
Nebo snad pomůže: http://php.vrana.cz/traverzovani-kolem-stromu-prakticky.php
Kcko
Profil
Nebo to udelat tak jak to delam ja ...

Vybrat celou navigaci do 2 rozmerneho pole a rekurzivni fci ho vypsat ..

1 SQL dotaz na ulozeni a pak to jiz zaridi php - vypsani celeho stromu

Pokud tech polozek neni 10 000 je to velmi rychle
hyspanak
Profil *
Díky, koukám že jsem nebyl ani moc vedle, když jsem vymýšlel strukturu databáze ;-)
hyspanak
Profil *
Tak ty odkazy mi asi moc nepomůžou. Asi ani jedna z uvedených možností by nedokázala vypsat několik položek. Třeba by bylo url index.php?id[]=4&id[]=8 a už to nebude funguvat. Na toto url bych si představoval výpis všech kořenů daného stromu + detailní rozepsání kořený daných pomocí id až na id.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: