Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z ilością includowanych elementów.
Forum PHP.pl > Forum > PHP
Mertuch
Mam na stronie skrypt:
  1. <?php
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10. $elementy = "./include/filmy/";
  11. $adres = "index.php?id=3";
  12. define('WIERSZY',2); 
  13. define('KOLUMN',1); 
  14. $x=0;
  15. if(is_file("./include/filmy/001.php")) {
  16. foreach (glob($elementy."*.php") as $element) $album[]=$element;
  17. $na_stronie=WIERSZY*KOLUMN; $razem=count($album);
  18. $stron=floor($razem/$na_stronie); $stron+=$razem % $na_stronie ? 1:0;
  19. $strona=$_GET['strona']; if (!isset($strona)) $strona=1;
  20. $start=($strona-1) * $na_stronie;
  21. $stop=($strona==$stron) ? $razem % $na_stronie: $na_stronie;
  22. $stop+=$start;
  23.  
  24.  
  25.  
  26.  
  27. echo "<table id='elementy'><tr>";
  28. for ($x=$start;$x<$stop;$x++){
  29. if (!($x % KOLUMN)) echo "</tr><tr>";
  30. echo "<td>";
  31.  
  32. rsort($album);
  33. if(is_file("./include/filmy/000.php")){ return; }
  34. else { include "$album[$x]"; }
  35.  
  36.  
  37. echo "</td>";
  38. }
  39. echo "</tr></table>";
  40.  
  41. if ($stron>1) {
  42. echo "Strona: "; 
  43.  
  44. for($x=1;$x<=$stron;$x++) {
  45. if ($strona==$x){echo "<b> $x </b>";}
  46. else {echo "<a href=\"$adres&strona=$x\"> $x </a>";}
  47. }
  48. }
  49. }
  50. else { echo "Brak filmów";}
  51.  
  52.  
  53.  
  54. ?>


Problem pojawia się, kiedy ilość elementów *.php jest równa wielokrotności zmiennej $na_stronie czyli w tym przypadku wielokrotnościami liczby 2.
Dokładniej:
Jak mam wygenerowane 2, 4, 6, 8 itd... elementów w katalogów, to zawsze kolejno pierwsza, druga, trzecia, czwarta strona jest pusta.
Czy ktoś ma pomysł jak rozwiązać problem?


// Nikt nie ma pomysłu? :/
likemandrake
Może ubierz Twój kod w BBCode 'php', a nie 'code'? Pewnie znajdzie się wtedy większe zainteresowanie Twoim postem...

W przypadku obliczania ilości stron, w zależności ile elementów chcemy wyświetlić na jednej stronie, używamy funkcji ceil do zaokrąglania w górę, a nie jak ty masz, floor, do zaokrąglania w dół. Mam nadzieję, że o to chodzi.

Po za tym, troszkę ciężko się połapać w Twoim kodzie, no ale cóż, każdy z nas kiedyś zaczynał. Może opowiedz, co chcesz osiągnąć, tzn. jak ma działać ten skrypt.
Mertuch
Pozwolę sobie odświeżyć temat. Może ktoś ma jakąś koncepcję?
likemandrake
Przecież pisałem Ci, czego mógłbyś spróbować, lecz nie napisałeś, czy to pomogło...
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.