Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] problem z pętlą for
rollon
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 14.03.2007

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


Witam wszystkich po dlugiej nieobecności

Mam oto taki kod:

  1. <?
  2.  
  3.  switch ($_GET['strona'])
  4. {
  5. case 0: 
  6.  
  7. $dirPath = "zd/"; 
  8. $dirDP=opendir( $dirPath ); 
  9. $ile = 0;
  10. while( $element = readdir( $dirDP ) ) { 
  11. if ( $element != '.' and $element != '..' ) { 
  12. $elementy[] = $element; 
  13. $ile++;
  14. } 
  15. } 
  16. for ($i=0;$i<=($ile-1);$i++) {
  17. echo '<table align="center" style="border:1px white solid; width:300px;"><tr><td style="text-align:center;">';
  18. echo '<a href=index.php?wys=17&strona=1&kat='.$elementy[$i].'><img src="images/galery_ikon.jpg" style="border:none;" /></a></td></tr><tr><td style="text-align:center;">';
  19. echo '<a class="tytul_prawa" href=index.php?wys=17&strona=1&kat='.$elementy[$i].'>';
  20. echo $elementy[$i];
  21. echo '</a>';
  22. echo '<br><br></td></tr></table><br>';
  23.  }  
  24.  closedir($dirDP);
  25.  
  26. break;
  27.  
  28. case 1: 
  29.  
  30. $katalog=$_GET['kat'];
  31.  
  32. $dir = "zd/$katalog/"; 
  33. $ext = ".jpg|.gif|.png|.JPG";
  34.  
  35. $puntero=opendir($dir);
  36. while ($fichero = readdir($puntero)) {
  37. if (is_file($dir.$fichero) && eregi($ext,$dir.$fichero)) { 
  38. $fotos["nombre"][$imagen] = $fichero;
  39. $fotos["modi"][$imagen] = filemtime($dir.$fichero);
  40. $imagen++;
  41. }
  42. }
  43. closedir($puntero);
  44. echo '<div class="tytul_prawa" style="text-align:center;">'.$katalog.'</div><br>';
  45. for ($i>=0;$i<=($imagen-1);$i++) {
  46. echo '<table align="center"><tr><td>';
  47. echo '<a style="border:2px white solid;" href="java script:fWin(''.$dir.$fotos["nombre"][$i].'','850','650')"><img width=300 src='.$dir.$fotos["nombre"][$i].' border="none"></a><br>';
  48. echo '</td></tr></table>';
  49. }
  50. }
  51. ?>


kod ma za zadanie odczytac nazwe katalogu, pobrac zdjęcia ktore sie w nim znajduja i wyswietlic w petli for, problem w tym ze w k
talogu mam 7 zdjec a on uparcie wyswietla mi 6 ;/ sądze ze jest to problem z petla. prosze o pomoc.

Ten post edytował rollon 10.10.2007, 20:33:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


po co ci te -1 w petli for??a po drugie dlaczego robisz tak i>=0; zrob tylko tak i=0; i tyle


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
rollon
post
Post #3





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 14.03.2007

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


  1. <?php
  2. $katalog=$_GET['kat'];
  3.  
  4. $dir = "zd/$katalog/"; 
  5. $ext = ".jpg|.gif|.png|.JPG";
  6.  
  7. $puntero=opendir($dir);
  8. while ($fichero = readdir($puntero)) {
  9. if (is_file($dir.$fichero) && eregi($ext,$dir.$fichero)) { 
  10. $fotos["nombre"][$imagen] = $fichero;
  11. $fotos["modi"][$imagen] = filemtime($dir.$fichero);
  12. $imagen++;
  13. }
  14. }
  15. closedir($puntero);
  16. echo '<div class="tytul_prawa" style="text-align:center;">'.$katalog.'</div><br>';
  17. for ($i=0;$i<=$imagen;$i++) {
  18. echo '<table align="center"><tr><td>';
  19. echo '<a style="border:2px white solid;" href="javascript:fWin(''.$dir.$fotos["nombre"][$i].'','850','650')"><img width=300 src='.$dir.$fotos["nombre"][$i].' border="none"></a><br>';
  20. echo '</td></tr></table>';
  21. ?>


gdy mam tak to nie wyswietla mi pierwszego i ostatniego zdjecia ;/ link:
http://www.ligota.net/index.php?wys=17&...cyjny_pokaz_OSP
Go to the top of the page
+Quote Post
marcio
post
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


fajne fotki kto podpalal malacza smile.gif a teraz nie chce powiedziec czegos glupiego ale jeszcze sie nie bawilem w przegladanie katalogow a nie mozna zastosowac feof czyli while(!feof($fichero)) zrob w pierwszej petli while ta ale nie wiem czy tak mozna robic na katalogach


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
rollon
post
Post #5





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 14.03.2007

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


hehe pierwsza podpalali a pozniej gasili smile.gif

ja tez sie nie bawilem, dzisiaj pierwszy raz i siadlem wlasnie na tym ;/

nie bardzo rozumiem o co Ci chodzi, ale moze cos dodukam smile.gif
Go to the top of the page
+Quote Post
colinQ
post
Post #6





Grupa: Zarejestrowani
Postów: 340
Pomógł: 2
Dołączył: 25.12.2006

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


  1. <?php
  2. for ($i=-1;$i<=$ile;$i++) {
  3. echo '<table align="center" style="border:1px white solid; width:300px;"><tr><td style="text-align:center;">';
  4. echo '<a href=index.php?wys=17&strona=1&kat='.$elementy[$i].'><img src="images/galery_ikon.jpg" style="border:none;" /></a></td></tr><tr><td style="text-align:center;">';
  5. echo '<a class="tytul_prawa" href=index.php?wys=17&strona=1&kat='.$elementy[$i].'>';
  6. echo $elementy[$i];
  7. echo '</a>';
  8. echo '<br><br></td></tr></table><br>';
  9.  }
  10. ?>


Może tak spróbuj...
Pisane z palca wiec nie jestem pewien...


--------------------
-> Kanał YouTube: http://www.youtube.com/user/screencup
-> Screencup - podcast/screencast, recenzja Makowych aplikacji
-> www.screencup.pl - witryna internetowa podcastu
Go to the top of the page
+Quote Post
rollon
post
Post #7





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 14.03.2007

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


nic to nie zmienilo ;/ poddaje się ;/
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #8





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Zainteresuj się biblioteką SPL (SPL - Standard PHP Library), w szczególności DirectoryIterator.
Więcej mozesz dowiedzieć się z: MichałMech.pl :: Blog / Iteratory w PHP, czyli stare nowe SPL.

Natomiast stricte Twój prolem. Która pętla nie działa? Przypuszczam, że druga. Spróbuj tak:
  1. <?php
  2. for ($i=0;$i<$imagen;$i++) {
  3. // ...
  4. }
  5. ?>

Na przyszłość: nie ma potrzeby tworzenia zmiennej licznika $imagen, możesz policzyć elementy tablicy (count" title="Zobacz w manualu PHP" target="_manual), natomiast przeglądając całą tablicę możesz skorzystać z instrukcji foreach" title="Zobacz w manualu PHP" target="_manual.


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
rollon
post
Post #9





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 14.03.2007

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


for ($i=0;$i<$imagen;$i++)

w przypadku tego rozwiazania wyswietla 6 zdjec z 7, ale dodatkowo dorysowuje pustą ramke na koncu, dlatego w moim zapisie odjąłem 1.
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 Aktualny czas: 19.08.2025 - 07:28