Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]rekurencja i zmienne globalne
Forum PHP.pl > Forum > Przedszkole
f1xer
I znów problem z drzewkiem chodzi o to że piszę moduł do joomli i teraz mam taki kod

  1. <?php
  2. function build_tree($parent,$menu,$level)
  3. {
  4. global $database, $mosConfig_shownoauth, $my,$wynik;
  5. static $i;
  6. if ($mosConfig_shownoauth) {
  7. $sql = "SELECT * FROM #__menu"
  8. . "\nWHERE menutype='". $menu."' AND published='1' AND parent='".$parent."'"
  9. . "\nORDER BY parent,ordering";
  10. } else
  11. {
  12. $sql = "SELECT * FROM #__menu"
  13. . "\nWHERE menutype='". $menu ."' AND published='1' AND access <= '$my->gid' AND parent='".$parent."'"
  14. . "\nORDER BY parent,ordering";
  15. }
  16. $database->setQuery($sql);
  17. $items = $database->loadObjectList();
  18. foreach($items as $item)
  19. {
  20.  
  21. $wynik[$i]=$i."|".$level."|".$item->name."|".$item->id;
  22. $i++;
  23.  build_tree($item->id,$menu,$level+1);
  24. }
  25. }
  26.  
  27. build_tree(0,"MainMenu",0);
  28. print_r($wynik);
  29. ?>


i print_r zwraca mi NIC dlaczego tak się dzieje?
skowron-line
  1. <?php
  2. $wynik = array();
  3. function build_tree($parent,$menu,$level)
  4. {
  5. global $database, $mosConfig_shownoauth, $my,$wynik;
  6. static $i;
  7. if ($mosConfig_shownoauth) {
  8. $sql = "SELECT * FROM #__menu"
  9. . "\nWHERE menutype='". $menu."' AND published='1' AND parent='".$parent."'"
  10. . "\nORDER BY parent,ordering";
  11. } else
  12. {
  13. $sql = "SELECT * FROM #__menu"
  14. . "\nWHERE menutype='". $menu ."' AND published='1' AND access <= '$my->gid' AND parent='".$parent."'"
  15. . "\nORDER BY parent,ordering";
  16. }
  17. $database->setQuery($sql);
  18. $items = $database->loadObjectList();
  19. foreach($items as $item)
  20. {
  21.  
  22. $wynik[$i]=$i."|".$level."|".$item->name."|".$item->id;
  23. $i++;
  24.  build_tree($item->id,$menu,$level+1);
  25. }
  26. }
  27.  
  28. build_tree(0,"MainMenu",0);
  29. print_r($wynik);
  30. ?>
f1xer
Niestety ale nadal to samo szlag mnie zaraz trafi biggrin.gif
SirZooro
Może zapytanie nic nie zwraca? Spróbuj wrzucić sobie jakieś printy do tej funkcji żeby sprawdzić co się dzieje.
f1xer
Zapytanie jest ok jak pod przypisaniem do $wynik[$i] dam echo $wynik[$i] to wyświetla to co powinno być chodzi o to że tej tablicy nie widać poza funkcją wiem prawie na pewno że chodzi o tą rekurencję nie wiem natomiast co jest nie tak

Już sobie poradziłem temat uważam za zamknięty dla potomnych rozwiązanie:

  1. <?php
  2. function build_tree($parent,$menu,$level)
  3. {
  4. global $database, $mosConfig_shownoauth,$my,$wynik;
  5. static $i;
  6. if ($mosConfig_shownoauth) {
  7. $sql = "SELECT * FROM #__menu"
  8. . "\nWHERE menutype='". $menu."' AND published='1' AND parent='".$parent."'"
  9. . "\nORDER BY parent,ordering";
  10. } else
  11. {
  12. $sql = "SELECT * FROM #__menu"
  13. . "\nWHERE menutype='". $menu ."' AND published='1' AND access <= '$my->gid' AND parent='".$parent."'"
  14. . "\nORDER BY parent,ordering";
  15. }
  16. $database->setQuery($sql);
  17. $items = $database->loadObjectList();
  18. foreach($items as $item)
  19. {
  20.  
  21. $wynik[$i]=$i."|".$level."|".$item->name."|".$item->id;
  22.  
  23. $i++;
  24.  
  25. build_tree($item->id,$menu,$level+1);
  26. }
  27. return $wynik;
  28. }
  29. $wynik=build_tree(0,"Main Menu,0);
  30. print_r($wynik);
  31. ?>
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.