Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]problem ze stronicowaniem
shreker
post 10.11.2009, 17:22:46
Post #1





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 21.05.2008

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


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. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Matimor
post 10.11.2009, 18:54:56
Post #2





Grupa: Zarejestrowani
Postów: 287
Pomógł: 10
Dołączył: 22.08.2009

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


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


--------------------
Go to the top of the page
+Quote Post
zegarek84
post 10.11.2009, 19:24:23
Post #3





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


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. }


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
shreker
post 10.11.2009, 19:44:26
Post #4





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 21.05.2008

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


faktycznie !
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: 5.07.2025 - 14:53