Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> rekurencja
-Gość_phpion-
post
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 :)
Go to the top of the page
+Quote Post
-Gość_phpion-
post
Post #2





Goście







A wypierdalajacie!!
Zauwazylem, ze niechetnie odpowiadacie niezarejestrowanym userom. I chuj! Wiec dlaczego sie nie rejestruje? Bo swego czasu zostalem nieslusznie zbanowany (dostalem 1 ostrzezenie i auto bana). Juz kurwa kilka razy prosilem na tym forum o pomoc - za kazdym razem gowno, jebana cisza.
A wypierdalajcie!!
Go to the top of the page
+Quote Post
mike
post
Post #3





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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
-Gość_phpion-
post
Post #4





Goście







odczekalem 20 godzin, nie spierajmy sie o glupie 4 godziny... no ludzie- badzmy powazni!
ps: swoje postulaty z poprzedniego postu nadal podtrzymuje
Go to the top of the page
+Quote Post
ikioloak
post
Post #5





Grupa: Zarejestrowani
Postów: 416
Pomógł: 0
Dołączył: 8.01.2004

Ostrzeżenie: (0%)
-----


To teraz myslisz ze ktos ci odpowie? Nie badz smieszny. Tak jak napisales 'badzmy powazni'. Pozwolcie ze zacytuje:
Cytat
"wypierdalaj"


Ten post edytował ikioloak 6.08.2005, 18:38:16
Go to the top of the page
+Quote Post
-Guest-
post
Post #6





Goście







widze ze musiales edytowac swojego posta zeby przekazac mi swa swiatla mysl
ps: wzajemnie - jak juz zauwazylem duzo wczesniej
Go to the top of the page
+Quote Post
-Gość_phpion-
post
Post #7





Goście







wypierdalajta jeszcze raz
Go to the top of the page
+Quote Post

Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 04:43