![]() |
![]() |
-Gość_phpion- |
![]()
Post
#1
|
Goście ![]() |
Hej! Mam taki problem. Mam baze o strukturze:
Kod id, matka, nazwa, stan gdzie id to id pozycji w menu, matka to id matki w strukturze menu, nazwa to nazwa :), a stan 0 (ukryty) lub 1 (widoczny). I teraz tak. Wczytuje dane: Kod $q = "SELECT id, matka, nazwa FROM menu WHERE stan=1"; $q = mysql_query($q); while ($r = @mysql_fetch_array($q)) { $A_matka[$r[0]] = $r[1]; $A_nazwa[$r[0]] = $r[2]; } Wyspisuje sobie menu funkcja: Kod function wypisz($id) { global $A_matka; global $A_nazwa; print "<ul>"; for ($i=count($A_matka); $i>=1; $i--) { if ($A_matka[$i] == $id) { print "<li>".$A_nazwa[$i]." (id = ".$i.")</li>"; wypisz($i); } } print "</ul>"; } wywolujac ja wypisz(0) gdyz 0 oznacza ze kategoria jest na samej gorze struktury. W rezultacie otrzymuje menu: Kod Mazaki (id = 4) Wodoodporne (id = 6) Klocki (id = 1) Jupikajego (id = 8) Jupikajej (id = 7) Inne klocuszki (id = 3) Betonowe (id = 9) Drewniane (id = 5) Lego (id = 2) I chce zeby klikajac na np. Klocki pokazywala mi sie lista z wszystkich potomnych kategorii czyli id 8 7 3 9 5 2. Probowalem zmodyfikowac funkcje wypisz() dodajac do niej drugi parametr i likwidujac print ale wtedy mi wczytywalo (czy do tablicy, czy zmiennej - i tak i tak probowalem) tylko kategorie potrzedne o 1 poziom wglab. Kod function potomne($id) { global $A_matka; for ($i=count($A_matka); $i>=1; $i--) { if ($A_matka[$i] == $id) { print $i." "; potomne($i); } } } Reasumujac: chcialbym zeby lista potomnych id nie zostala wyslana na wyjscie tylko zwrocona najlepiej jako tablica. I moze przy okazji jedno: moglby ktos tak zmodyfikowac funkcje, zeby lista pozycji na danym poziomie byla posortowana alfabetycznie A-Z? Z gory serdeczne dzieki i conajmniej 2x pomogl :) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
1. Nawet nie odczekałeś 24 godzin. Czasemi trzeba troche pokory żeby dostac odpowiedź.
2. Widząc Twoja kulturę wypowiedzi, nie ma co się dziwić że dostałeś bana. 3. Po takich szczeniackich fochach podejrzewam że w ogóle nie masz po co tu wracać i pytać, bo nie usłyszych odpowiedzi a raczej "wypierdalaj". Wie że przegiąłem w pkt. 3. ale może obejdzie się baz ostrzeżenia ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 19:56 |