Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Blad w warunku
Bojakki
post 2.12.2005, 19:30:16
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


Mma taka funkcje:

  1. <?php
  2. //Funkcja
  3. function ile($platforma_gry, $nazwa_gry){
  4. $staly_katalog="baza";
  5. $kat_plat=strtolower(konkatenuj($platforma_gry));
  6. $nazwa_gry=id_gry($nazwa_gry);
  7. $nazwa_kat=konkatenuj($nazwa_gry);
  8.  
  9. $katalog = "$staly_katalog/$kat_plat";
  10. $katalog = "$katalog/$nazwa_kat/galeria/";
  11.  
  12. $dir=opendir($katalog);
  13. $i=0;
  14. while($file_name=readdir($dir))
  15. {
  16. if(($file_name!=".")&&($file_name!="..")&&($file_name!="mini"))
  17. {
  18. $i++;
  19. }
  20. if( $i > 0 )
  21. {
  22.  echo 'OK';
  23.  }
  24.  else
  25.  {
  26.  echo 'NIE OK';
  27. }
  28. }
  29. closedir($dir);
  30. return $i;
  31. }
  32. ?>


Funkcja ta ma za zadanie zliczac ilosc screenow w galerii i wypisywanie odpowiedniego komunikatu gdy jest ich wiecej lub mniej niz 0

Wszystko dziala parwidlowo procz tego, ze owy komunikat powtarza 3 razy plus tyle ile jest obrazkow galerii. Jezeli jest np. 5 obrazkow to komunikat "ok" pojawia sie 8 razy itd. Ja chce by pokazal sie tylko raz. Jak to zrobic? Zanzaczam, ze jestem bardzo poczatkujacy.


--------------------
Go to the top of the page
+Quote Post
gam3r
post 2.12.2005, 22:04:41
Post #2





Grupa: Zarejestrowani
Postów: 148
Pomógł: 0
Dołączył: 8.06.2005

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


z tego co rozumiem, to chcesz poprostu na końcu strony wyświetlić takie małe podsumowanie? jezeli tak to masz tutaj blad logiczny - tzn. kod nie odpowiada temu co chciałbyś pokazać.
mianowicie: jeżeli masz w tym folderze 5 plików to pętla przechodzi 8 razy bo masz jeszcze powrót do wyższego katalogu .... itd. (warunek sprawdzenia tego napisałeś smile.gif
  1. <?php
  2. if(($file_name!=".")&&($file_name!="..")&&($file_name!="mini"))
  3. ?>

plus te 5 właściwych plikow ktore sie w tym folderze znajdują. No i jeżeli masz w tym przypadku 8 razy wypisany komunikat tzn. ze za kazdą iteracją wyświetla ci czy jest 'ok' albo 'nie ok'. A powinieneś wypisywać rezultat poza pętlą while, tak więc w pętli tylko zliczasz ile jest 'ok' a ile 'nie ok' i po zakonczeniu jej dzialania wyswietlasz wynik.
Ja bym to zrobił tak:

  1. <?php
  2. //Funkcja
  3. function ile($platforma_gry, $nazwa_gry){
  4. $staly_katalog="baza";
  5. $kat_plat=strtolower(konkatenuj($platforma_gry));
  6. $nazwa_gry=id_gry($nazwa_gry);
  7. $nazwa_kat=konkatenuj($nazwa_gry);
  8.  
  9. $katalog = "$staly_katalog/$kat_plat";
  10. $katalog = "$katalog/$nazwa_kat/galeria/";
  11.  
  12. $dir=opendir($katalog);
  13. $i=0;
  14.  
  15. while($file_name=readdir($dir))
  16. {
  17. if(($file_name!=".")&&($file_name!="..")&&($file_name!="mini"))
  18. {
  19. $i++;
  20. }
  21.  
  22. }
  23.  
  24.  
  25.  
  26.  if( $i > 0 )
  27. {
  28.  echo 'OK';
  29.  }
  30.  else
  31.  {
  32.  echo 'NIE OK';
  33.  }
  34.  
  35. closedir($dir);
  36. return $i;
  37. }
  38. ?>

czyli warunek:
  1. <?php
  2.  if( $i > 0 )
  3. {
  4.  echo 'OK';
  5.  }
  6.  else
  7.  {
  8.  echo 'NIE OK';
  9.  }
  10. ?>

musisz dać na sam koniec funkcji, poza pętląsmile.gif

Ten post edytował gam3r 2.12.2005, 22:06:34
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 31.07.2025 - 07:58