Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> return VS echo, Funkcja wywoluje inną funkcję i...
patigo
post
Post #1





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 4.02.2005

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


Witam mam taki mały problem, napisałem 2 funkcje z których jedna jest wywoływana wewnątrz drugiej:
  1. <?php
  2.  
  3. function MenuNowe($Id){
  4. $q = "SELECT * FROM dzialy WHERE Id=$Id ORDER BY sort ASC";
  5. $r = $this->q($q);
  6. while ($mn = mysql_fetch_array($r)){
  7. if ($mn[3]==0){
  8. return $mn[0];//TU!!!
  9. }else{
  10. $this->MenuNowe($mn[5]);
  11. }
  12. }
  13. }
  14.  function OstatnioDodane(){
  15. $q = "SELECT * FROM artykuly ORDER BY DataDodania DESC LIMIT 0,5";
  16. $r = $this->q($q);
  17. while ($tb = mysql_fetch_array($r)){
  18. $tytul = substr($tb[1], 0, 25);
  19. echo '<p class="MenuPrawe"><a href="index.php?IdArtykul='.$tb[0].'&amp;ID='.$this->MenuNowe($tb[3]).'&amp;IdDzial='.$tb[3].'" class="MenuPrawe">'.$tytul.'...</a></p>';
  20. }
  21. }
  22.  
  23. ?>

fragment kodu gdzie pisze //TU!!! stanowi problem ponieważ używając return tylko raz będzie zwrócona wartość pomimo tego że wywołanie tej funkcji nastąpi kilkukrotnie w pętli while, wpisując echo zostanie wyświetlone ale nie podstawione jako zmienna w adresie. Wcześniej mialem drugą funkcję zapisana tak:
  1. <?php
  2.  
  3.  function OstatnioDodane(){
  4. $q = "SELECT * FROM artykuly ORDER BY DataDodania DESC LIMIT 0,5";
  5. $r = $this->q($q);
  6. while ($tb = mysql_fetch_array($r)){
  7. $tytul = substr($tb[1], 0, 25);
  8. $ID = $this->MenuNowe($tb[3]);
  9. echo '<p class="MenuPrawe"><a href="index.php?IdArtykul='.$tb[0].'&amp;ID='.$ID.'&amp;IdDzial='.$tb[3].'" class="MenuPrawe">'.$tytul.'...</a></p>';
  10. }
  11.  
  12. }
  13. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 21.08.2025 - 12:20