Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pętla w pętli do n-poziomu
Forum PHP.pl > Forum > PHP
michaf1994
Cześć wszystkim
Mam tabelę w bazie danych `kategorie`.

Oto struktura:
ID|NAZWA|RODZIC|POZIOM
--|-------|--------|---------
1 |Ogród | 0| 1
2 |Salon | 0| 1
3 |Krzesła| 1| 2
4 |Fotele | 2| 2
5 |Drewno| 3| 3
5 |Plastik | 3| 3

I teraz chcę zrobić <select> z wyborem kategorii. Jak dynamicznie robić pętlę w pętli do n poziomu?
Chodzi o to, że może być nawet do 100 poziomów i dynamicznie miałoby mi samo się tworzyć w kodzie wtedy.
Przykład dla poziomu 3 to:

while() {
while() {
while() {
}
}
}
nospor
Po pierwsze: poczytaj o rekurencji
Po drugie i PRZEDEWSZYSTKIM: poczytaj o strukturach drzewiastych np drzewka IP bo to co masz to najgorsze z mozliwych rozwiazan
michaf1994
Faktycznie. Przecież jest rekurencja. Dawno nie używałem jej więc nawet nie skojarzyło mi się.

Czy taki kod wyświetli to co bym chciał?

  1. function kategorie($poziom, $maxpoziom, $rodzic) {
  2. if ($poziom==$maxpoziom) {
  3. $result = mysql_query("SELECT * FROM `kategorie` WHERE `poziom`='{$poziom}' AND `rodzic='{$rodzic}'");
  4. while($row = mysql_fetch_assoc($result)) {
  5. echo $row['nazwa'].'<br />';
  6. }
  7. } else {
  8. $result = mysql_query("SELECT * FROM `kategorie` WHERE `poziom`='{$poziom}' AND `rodzic='{$rodzic}'");
  9. while($row = mysql_fetch_assoc($result)) {
  10. echo $row['nazwa'].'<br />';
  11. kategorie($poziom+1, $maxpoziom, $row['id']);
  12. }
  13. }
  14. }
nospor
Cytat
Czy taki kod wyświetli to co bym chciał?
Sprawdz a sie dowiesz.
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.