Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] paginacja zwykłego tekstu
Forum PHP.pl > Forum > Przedszkole
loocek
Cześć,

Chcę na swoich małych rozmiarowo stronkach dopisywać dowcipy. No i zrozumiałym jest że tego przybywa i potrzebna jest jakaś ładna paginacja. Sęk w tym że na necie znalazłem implementacje jedynie z bazami danych.. a po co mi.. Mam po prostu każdą stronę html z dowcipami i potrzebna mi paginacja przełączania się pomiędzy plikami html na dobrą sprawę.. jak to zrobić ? a może ta nieszczęsna baza byłaby tu sensowna ?
RafaelX
Stworzenie bazy byłoby sensownym rozwiązaniem. Jak masz stronę opartą o Baze danych to wszystko się łatwiej administruje i w ogóle łatwiej porządek utrzymać
a struktura takiej bazy w twoim przypadku nie była by trudna do zrobienia
loocek
Nie mam na razie MySQLa, niby moge zainstalowac ,ale czy to jedyne wyjście ? I czy nieprzesadne aby do kilku tekstów instalować baze danych questionmark.gif?
RafaelX
do kilku to nie ale na przyszłość to jak bedziesz miał tam 500 dowcipów i moze zechce ci sie zrobic komentarze to kazdego albo oceny i co w tedy questionmark.gif

Na plikach oczywiście że sie da zrobić tylko opisz dokładniej jak przechowywane poszczególne wpisy w jednym czy w oddzielnych plikach bo tego nie rozumiem
Cytat
Mam po prostu każdą stronę html z dowcipami
loocek
Cytat(RafaelX @ 18.04.2009, 22:07:38 ) *
Na plikach oczywiście że sie da zrobić tylko opisz dokładniej jak przechowywane poszczególne wpisy w jednym czy w oddzielnych plikach bo tego nie rozumiem

jako że jestem początkującym lamerem to zrobiłem to najprościej, mam w tej chwili 4 strony dowcipyx.html (x - cyfra od 1 do 4), i chcę że jak jestem na którejś to na końcu żeby była paginacja czyli możliwość przełączania się, powrotu do innych stron
piotrooo89
Cytat(loocek @ 18.04.2009, 22:16:07 ) *
jako że jestem początkującym lamerem to zrobiłem to najprościej, mam w tej chwili 4 strony dowcipyx.html (x - cyfra od 1 do 4), i chcę że jak jestem na którejś to na końcu żeby była paginacja czyli możliwość przełączania się, powrotu do innych stron


ale dlaczego tak rękami i nogami bronisz się przed użyciem tego mysql'a? to ma za zadanie ułatwić a nie utrudnić Ci życie.
erix
Jak nie chcesz MySQL, to użyj SQLite. winksmiley.jpg

Do małych projektów idealny.
piotrooo89
na upartego możesz zapisywać w plikach txt wczytywać odpowiedni plik stronicując go.
RafaelX
to zrób tak
dajesz dobie w get'ie no link/do/strony/dowcipy.php?strona=1
  1. <?php
  2. if(!isstet($_GET['strona']) || $_GET['strona']=='1'){
  3. include('dowcipy1.html');
  4. }elseif(isstet($_GET['strona']) || $_GET['strona']!='1'){
  5. $strona='dowcipy'. $_GET['dowcipy'] .'.html';
  6. include($strona);
  7. }
  8. // i teraz odnośniki
  9. if(!isstet($_GET['strona']) || $_GET['strona']=='1'){
  10. //dajesz link tylko do nastepnej strony przy okazji sprawdzając czy plik dowcipy2.html isteniej
  11. }elseif(isstet($_GET['strona']) || $_GET['strona']!='1'){
  12. //dajesz link to strony o jeden mniejszej niz ta co jest w linku (poczytaj o typach zmiennych) oraz link do o 1 wiiększej sprawdzając jak wyzej czy istanieje
  13. }
  14.  
  15. //i to chyba tyle
  16. ?>
loocek
Cytat(RafaelX @ 18.04.2009, 22:28:34 ) *
to zrób tak
dajesz dobie w get'ie no link/do/strony/dowcipy.php?strona=1
[php]
if(!isstet($_GET['strona']) || $_GET['strona']=='1'){
include('dowcipy1.html');
}elseif(isstet($_GET['strona']) || $_GET['strona']!='1'){
$strona='dowcipy'. $_GET['dowcipy'] .'.html';
include($strona);
}

[...]


dzięki o to mi chodziło, spytam się jednak .. co jeśli chciałbym aby oprócz odnośników były pomiędzy nimi odnośniki do konkretnych numerów stron 2,3,4 itd. czy wtedy już musze zastosować mysqla ? (wychodze po prostu z założenia że po co na bitwe zaprzągac całą armię skoro wystarczy jedna armata)
Pilsener
Użyj funkcji, choćby takiej (kiedyś ją znalazłem na tym forum i trochę ulepszyłem):
  1. <?php
  2. function tresc_pasek($l_odp,$l_odp_nastronie,$l_odp_napasku,$a) { //funkcja tworząca nawigację
  3.   $l_odp_podz = intval($l_odp/$l_odp_nastronie)+1;
  4.   $l_odp_podz_mod = $l_odp%$l_odp_nastronie;
  5.   if($l_odp_podz_mod>0){++$l_odp_podz;}
  6.   if($a>=$l_odp_podz){$a=$l_odp_podz-1;}
  7.   if($a>1){$tablica['prev']=$a-1;}else {$tablica['prev']=0;}
  8.   if($a<=$l_odp_napasku){$koniec=$l_odp_napasku*2+2;}else{$koniec=$a+$l_odp_napasku+1;}
  9.   if($a<=$koniec-$l_odp_napasku){$star=$a-$l_odp_napasku;}
  10.   if($a>=$l_odp_podz-$l_odp_napasku){$star=$l_odp_podz-$l_odp_napasku*2-1;}
  11.   if($koniec>$l_odp_podz){$koniec=$l_odp_podz;}
  12.   if($star<1){$star=1;}
  13.   for($i=$star;$i<$koniec;++$i){
  14.      if($i<$a){$tablica[]=$i;}
  15.      if($i==$a){$tablica['active'] = $i;}
  16.      if($i>$a){$tablica[]=$i;}    
  17.   }
  18.   if($a<$l_odp_podz-1){$tablica['next']=$a+1;}else{$tablica['next']=0;}
  19.   return $tablica;
  20. }
  21. ?>
- wystarczy ją nakarmić argumentami: liczba rekordów, liczba rekordów na jednej stronie, rozmiar paska nawigacyjnego, numer aktualnej strony. Wynik działania tej funkcji to gotowa tablica stron (z zaznaczeniem aktywnej) - wystarczy ją połączyć z kodem HTML i wyświetlić na stronie.
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.