Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problemy z wyswietlaniem drzewka
Forum PHP.pl > Forum > PHP
ergo
napisalem sobie taka funkcje ktora ma mi zrobic strzukture zagniezdzona kategorii
najpierw podam strukture bazy :
Kod
id  rodzic   nazwa
1      0      kategoria1     
2  0  kategoria2  
3  0  kategoria3  
12  1  subcat1  
13  1  subcat11  
32  13  jeszcze glebiej  
28  2  xxx  

  1. <?php
  2.  
  3. function drzewo($id){
  4. global $tab,$glebokosc, $drzewko;
  5. $zapytanie='SELECT * FROM `'.$tab."kategorie` WHERE rodzic=$id ORDER BY jezyk ASC";
  6. $wynik=mysql_query($zapytanie);
  7. while($wiersz=mysql_fetch_assoc($wynik)){
  8. $drzewko[]=array('id'=>$wiersz[id],'nazwa'=>$wiersz[nazwa],'glebokosc'=>(int)$glebokosc);
  9. $zapytanie2='SELECT * FROM `'.$tab."kategorie` WHERE rodzic=".$wiersz[id]." ORDER BY jezyk ASC";
  10. $wynik2=mysql_query($zapytanie2);
  11. if(mysql_num_rows($wynik2)>0){
  12. $glebokosc++;
  13. drzewo($wiersz[id]);
  14. $glebokosc=0;
  15. }
  16.  
  17. }
  18.  
  19. }
  20.  
  21. drzewo(0);
  22.  
  23. ?>

po wyrysowaniu daje mi to cos takiego czyli jest ok :
Kod
|-  kategoria1  -
|       |- subcat1 -
|       |- subcat11 -
|              |- jeszcze glebiej -
|- kategoria2 -
|       |- xxx -
|- kategoria3 -  

ale gdy dodam np. do ktorej subkategorii jeszcze jedna glebsza pozycje i tabela wyglada np:
Kod
id   rodzic  nazwa
1      0      kategoria1     
2  0  kategoria2  
3  0  kategoria3  
12  1  subcat1  
13  1  subcat11  
32  13  jeszcze glebiej  
28  2  xxx  
33      12      podkategoriaxx      0


otrzymuje cos takiego :
Kod
|-  kategoria1  -
|       |- subcat1 -
|              |- podkategoriaxx -
|- subcat11 -
|       |- jeszcze glebiej -
|- kategoria2 -
|       |- xxx -
|- kategoria3 -

czyli wszystko sie przsuwa i wyswietla sie zle , ma ktos pomysl jak to poprawic i wyjasnic co bylo zle i dlaczego bedzie dobrze ? :] z gory dziekuje
dobra jzu mi ktos podpowiedzial trzeba bylo uzyc
$glebokosc-- zamiast $glebokosc=0 na koncu tongue.gif
ale moze komus kod sie i tak przyda biggrin.gif
legorek
Poczytaj o drzewkach. Twoja metoda nie jest najlepsza i jak sam widzisz nie działa najlepiej ;-)
ghostrider
nie sprawdzałem tego dokładnie ale:


  1. <?php
  2.  $glebokosc++;
  3. drzewo($wiersz[id]);
  4. $glebokosc=0;
  5. ?>


powinno chyba być
  1. <?php
  2.  $glebokosc++;
  3. drzewo($wiersz[id]);
  4. $glebokosc--;
  5. ?>


spróbuj, zobaczymy ...

poczytaj też: http://www.phpriot.com/d/articles/php/appl...es-2/page6.html
ergo
tak jak zmienilem wczoraj na $glebokosc-- to zaczelo dzialac tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.