ďťż

[php] gdzie ja jestem - drzewo kategorii :D

       

Podstrony


telcocafe

Witajcie mam tak i problem tworze coś ala mały katalog stron WWW. W bazie Mysql mam tabele kategorie_drzewo o polach :

IDKategorii,NazwaKategorii,Parent

Kilka przykładowych rekordów :

1 | Języki programowania |0
2 | Programowanie obiektowe | 1
3 | Programowanie strukturalne | 1
4 | Pascal |3
5| C++ | 2

I wszystko byłoby gdyby nie jeden problem chciałbym zrobic cos takiego żeby u góry strony pojawiało sie gdzie w drzewie kategorii znajduje się użytkownik czyli np :

Języki programowania / Programowanie obiektowe / C++

I nie wiem jak to zrobić mógłby ktos mi napisać jak albo chociażpodpowiedziec . Najelpiej zeby rozwiazanie byl oszybkei i wydajne :)



podpowiedź - pseudokod:

$t = info o kategorii, w której aktualnie znajduje się user; $okruszki = $t['NazwaKategorii']; dopóki $t['Parent']>0 { $t = info o kategorii, której ID == $t['Parent']; $okruszki = $t['NazwaKategorii'].' / '.$okruszki; } echo $okruszki;
Użytkownik bryn edytował ten post 12 luty 2007, 11:27
Szczerze mówiac twój pseudo kod nic mi nie mowi :(

Oj.

Cel: do zmiennej $okruszki wpisać "Języki programowania / Programowanie obiektowe / C++"

Rozwiązanie:
    l Po prostu robisz:
    SELECT * FROM kategorie_drzewo WHERE IDKategorii=$id_kategorii_w_ktorej_jest_uzytkownik
    Wynik tego zapytania zapisujesz w tablicy np. $t.
    l
    l Później do zmiennej $okruszki wpisujesz $t['NazwaKategorii'] - czyli bezpośrednio nazwę kategorii w której jest użytkownik; w tym przypadku "C++".
    l
    l Teraz robisz pętlę while - niech się wykonuje dopóki ($t['Parent'] > 0) - czyli dopóki aktualnie przetwarzana kategoria nie jest korzeniem. Wewnątrz pętli:
      l wynik poniższego zapytania zapisujesz do $t SELECT * FROM kategorie_drzewo WHERE IDKategorii=$t['Parent']
      l
      l na początku zmiennej $okruszki dopisujesz "$t['NazwaKategorii'] / ";
      czyli w tym przypadku przy pierwszym wykonaniu pętli dopiszesz "Programowanie obiektowe / ", a przy drugim - "Języki programowania / "l
    l

I po bólu :)



Ból pozostał , może wez kod mi napisz ... .przeanalizuje ot moze zajarze ... :) Będe bardzo wdzięczny a na pewno wielu innym użytkownikom sie to przyda :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.