Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problem ze stronicowaniem
Forum PHP.pl > Forum > Przedszkole
shreker
Witam mam drobny problem ze stronicowaniem. Samo dzielenie na strony w sumie działa, ale rozpoczyna się zawsze od "2" strony, zamiast od pierwszej, w czym jest problem?
  1. $page = isset($_GET['page']) ? $_GET['page'] : 1; //Strona
  2. $wszystkie_dane = file_get_contents('dane.txt'); //Nazwa pliku z danymi
  3. $wielkosc_strony = 10;
  4.  
  5. $dane = explode("\n", $wszystkie_dane);
  6. $all = count($dane); // liczy ile jest stron z danymi
  7. $all = ceil($all / $wielkosc_strony);
  8.  
  9. $npage = $page + 1 ; // Następna strona
  10. $ppage = $page - 1 ; // Poprzednia strona
  11. $max = $all - 1;
  12.  
  13.  
  14. if ($page < 0 || $page > $max)
  15. {
  16. echo "Nie ma takiej strony!";
  17. }
  18. else
  19. {
  20. for ($i = $page * $wielkosc_strony; $i < ($page + 1) * $wielkosc_strony ;$i ++)
  21. {
  22. echo @$dane[$i] . "<br/>";
  23. }
  24. }
  25.  
  26. if ($max > 1)
  27. {
  28. if ($page != 0)
  29. echo "<a href='index.php?pokaz=sites/testowa&page=$ppage'> cofnij </a>";
  30. if ($page != $max)
  31. echo "<a href='index.php?pokaz=sites/testowa&page=$npage'> dalej </a>";
  32. }
Matimor
Hmm wnioskuje, że brakuje Ci pierwszej strony, bo miałem ten problem smile.gif

  1. if(!$_GET['page'])
  2. {
  3. //Tu pierwsza strona oznacza to, jeżeli żadna strona nie jest zdefiniowana (page) to pokaże Ci tą strone
  4. }
  5. if($page < 0 || $page > $max)
  6. ...
  7.  
  8. //Itd
zegarek84
zerknij na metodę pagerShow - a to jak obliczysz wcześniej aktywną stronę to już Twoja sprawa jeśli nie masz w get - drugi parametr pokazuje liczbę maksymalnie wyświetlonych numerów obok aktywnej strony w lewo i w prawo...
  1. class pager {
  2. private $v;
  3. public function __construct($all,$countOn) {
  4. $this->v=array('all'=>$all,'countOn'=>$countOn,'pages'=>ceil($all/$countOn));
  5. }
  6.  
  7. public function pageGetNr($gdzie) {if(!isset($this->v['pageNr'])) {$this->v['pageNr']=min(array(ceil($gdzie/$this->v['countOn']),$this->v['pages']));};
  8. return $this->v['pageNr'];
  9. }
  10. public function pageGetStart($pageNr) {
  11. return ($pageNr-1)*$this->v['countOn'];
  12. }
  13. public function pageCountOn() {
  14. return $this->v['countOn'];
  15. }
  16.  
  17. public function pagerShow($pageNr,$ile=1) {$i=1;$v='';
  18. while($i<=$this->v['pages']) {
  19. $v.=($i==$pageNr)?'<li class="active">'.$i.'</li>':'<li><a href="?page='.$i.'">'.$i.'</a></li>';
  20. if($i<($pageNr-$ile-1)) {$v.='<li>…</li>';$i=$pageNr-$ile;continue;};
  21. if(($i>($pageNr+$ile-1))&&($i<$this->v['pages'])) {$v.='<li>…</li>';$i=$this->v['pages'];continue;};
  22. ++$i;} ;
  23. return $v;
  24. }
  25. }
shreker
faktycznie !
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.