Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Rekurencyjna funkcja pobierająca drzewo
-Gość-
post
Post #1





Goście







Witam, muszę napisać funkcję rekurencyjną która pobierze mi całe drzewo kategorii z bazy. Napisałem, ale działa źle tzn. podkategorie pojawiają się tam gdzie nie powinny (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Może mi ktoś pokazać jak powinna wyglądać taka funkcja? W bazie mam pola: id, parent_id i name.

Dziękuję
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Black-Berry
post
Post #2





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


  1. <?php
  2. // $parent is the parent of the children we want to see
  3. // $level is increased when we go deeper into the tree,
  4. //        used to display a nice indented tree
  5. function display_children($parent, $level) {
  6.   // retrieve all children of $parent
  7.   $result = mysql_query('SELECT title FROM tree '.
  8.                          'WHERE parent="'.$parent.'";');
  9.  
  10.   // display each child
  11.   while ($row = mysql_fetch_array($result)) {
  12.       // indent and display the title of this child
  13.       echo str_repeat('  ',$level).$row['title']."\n";
  14.  
  15.       // call this function again to display this
  16.       // child's children
  17.       display_children($row['title'], $level+1);
  18.   }
  19. }
  20. ?>


Ten post edytował Black-Berry 14.09.2008, 10:48:11
Go to the top of the page
+Quote Post
Czadus
post
Post #3





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

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


Witam. Korzystając z okazji, aby nie zakładać nowego tematu, zapytam odnośnie ryzyka wykorzystywania funkcji rekurencyjnych w php. Czytałem bowiem w internecie następujące zdanie: "Należy jednak unikać rekurencyjnych wywołań funkcji lub metod o głębokości większej niż 100-200 poziomów, gdyż może to zniszczyć stos i spowodować przerwanie działania skryptu.". I moje pytanie na ile jest to niebezpieczne i na ile poważne. bardziej chodzi mi o to, czy trzeba do tego poważnie podejść, czy może poprawność działania kodu jest mimo wszystko bezpieczna??
Go to the top of the page
+Quote Post
Black-Berry
post
Post #4





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


funkcje rekurencyjne wogóle nie powinny być nigdzie stosowane. Świadczą o lenistwie programisty. Każdą funkcję rekurencyjną można przerobić na nie-rekurencyjną.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 12:51