![]() |
![]() |
-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 :) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 16:27 |