Witam,
Mam "mały" problem z galerią zdjęć, który pojawia się z chwilą, gdy ilość zdjęć pokrywa się dokładnie z iloczynem zadeklarowanej ilości wierszy i kolumn (w tym przypadku 3*5).

Kiedy mam 15 zdjęć (czyli dokładnie tyle ile wynosi iloczyn wierszy i kolumn), to zdjęcia się nie wyświetlają. Gdy zdjęć jest mniej lub więcej niż 15, to wszystko działa jak należy.

Kod:
  1. <?php
  2.  
  3. /* Ustalamy w jakim katalogu znajduja sie zdjecia oraz ile wierszy i kolumn bedzie tworzyc galeria jednej strony. */
  4. define('KATALOG_ZDJEC','galeria/');
  5. define('WIERSZY',3);
  6. define('KOLUMN',5);
  7.  
  8. /*
  9. Przeczesujemy wybrana lokalizacje w poszukiwaniu plikow .jpg i zapisujemy ich nazwy w tablicy $album.
  10. Wszelkie informacje o plikach beda teraz odczytywane z tej tablicy dzieki czemu ograniczymy mielenie dyskiem do minimum :)
  11. */
  12. $x=0;
  13. foreach (glob(KATALOG_ZDJEC."{*.jpg,*.JPG*.gif,*.GIF*.png,*.PNG}", GLOB_BRACE) as $zdjecie) $album[$x++]=$zdjecie;
  14. /* Zliczamy ile fotek lacznie pojawi sie na jednej stronie oraz calkowita ich liczbe */
  15. $na_stronie=WIERSZY*KOLUMN;
  16. $razem=count($album);
  17.  
  18. /*
  19. Dzieki czemu mozemy wyliczyc liczbe stron. Czesc calkowita z dzielenia liczby fotek przez liczbe zdjec na jednej stronie da laczna liczbe stron.
  20. Jesli zostanie jakas reszta z dzielenia to znaczy ze potrzebujemy jeszcze jednej strony dla wyswietlenie kilku ostatnich zdjec.
  21. */
  22. $stron=floor($razem/$na_stronie);
  23. $stron+=$razem % $na_stronie ? 1:0;
  24.  
  25. /*
  26. Zmienna $pokaz_strone przechowuje nr. akutalnej strony do wyswietlenia.
  27. Jej wartosc odczytywana jest z adresu strony (np. http://szabloniki.com/galeria.php?pokaz_strone=4)
  28. Jesli wartosc nie zostala ustalona (http://szabloniki.com/galeria.php) przyjmujemy ze wyswietlamy strone 1.
  29. */
  30. @$pokaz_strone=$_GET['pokaz_strone'];
  31. if (!isset($pokaz_strone)) $pokaz_strone=1;
  32.  
  33. /* Bedziemy odczytywac tylko te fragmenty tablicy $album ktore zawieraja zdjecia wystepujace na danej stronie, dlatego potrzebujemy ustalic jaki bedzie to obszar. */
  34. $start=($pokaz_strone-1) * $na_stronie;
  35. $stop=($pokaz_strone==$stron) ? $razem % $na_stronie: $na_stronie;
  36. $stop+=$start;
  37.  
  38. echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"700\"><tr>";
  39.  
  40. /* Z wybranych elementow rysujemy tabelke */
  41. for ($x=$start;$x<$stop;$x++)
  42. {
  43. /* Jesli osiagnieto ustalona liczbe kolumn przechodzimy do nastepnego wiersza */
  44. if (!($x % KOLUMN)) echo "</tr><tr>";
  45.  
  46. /* Tworzymy obrazek ktory wygenerowany zostanie przez skrypt mini.php na podstawie przekazanej nazwy pliku. */
  47. echo "<td><a href=\"".$album[$x]."\" rel=\"lightbox [galeria]\" title=\"Galeria\"><img src=\"mini.php?fotka="."{$album[$x]}\"></a><br>";
  48.  
  49. /* Ponizsze linie sprawdzaja czy w katalogu ze zdjeciem istnieje taki sam plik z roszerzeniem .txt. Jesli tak, wyswietla jego zawartosc pod zdjeciem. */
  50. list($info)=explode('.',basename($album[$x]));
  51. if(file_exists(KATALOG_ZDJEC.$info.".txt"))
  52. {
  53. $plik=fopen(KATALOG_ZDJEC.$info.".txt","r");
  54. $opis=fgets($plik);
  55. fclose($plik);
  56. echo "<br>$opis";
  57. }
  58. echo "<br>";
  59. echo "</td>";
  60. }
  61. echo "</tr></table>";
  62. echo "<table><tr><td colspan=\"4\" height=\"35\"> </td></tr></table>";
  63.  
  64. /* Jesli mamy wiecej niz jedna strone wyswietlimy ich liste */
  65. if ($stron>1)
  66. {
  67. echo "<br>";
  68. echo "Strona: "; for($x=1;$x<=$stron;$x++)
  69. {
  70. /* Biezaca strone pogrubimy a pozostale beda linkami z odpowiednim adresem */
  71. if ($pokaz_strone==$x)
  72. echo "<b> $x </b>";
  73. else
  74. echo "<a href=\"index.php?strona=galeria&pokaz_strone=$x\"> $x </a>";
  75. }
  76. }
  77. ?>

Wydaje mi się, że błąd leży w liniach 34-36, ale niestety nie mogę sobie z nim poradzić.