Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] paginacja zwykłego tekstu
loocek
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 18.04.2009

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


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 ?

Ten post edytował loocek 18.04.2009, 19:22:05
Go to the top of the page
+Quote Post
RafaelX
post
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 28
Dołączył: 2.01.2009

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


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
Go to the top of the page
+Quote Post
loocek
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 18.04.2009

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


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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post
RafaelX
post
Post #4





Grupa: Zarejestrowani
Postów: 144
Pomógł: 28
Dołączył: 2.01.2009

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


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 (IMG:http://forum.php.pl/style_emoticons/default/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
Go to the top of the page
+Quote Post
loocek
post
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 18.04.2009

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


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
Go to the top of the page
+Quote Post
piotrooo89
post
Post #6


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




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.
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Jak nie chcesz MySQL, to użyj SQLite. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Do małych projektów idealny.
Go to the top of the page
+Quote Post
piotrooo89
post
Post #8


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




na upartego możesz zapisywać w plikach txt wczytywać odpowiedni plik stronicując go.
Go to the top of the page
+Quote Post
RafaelX
post
Post #9





Grupa: Zarejestrowani
Postów: 144
Pomógł: 28
Dołączył: 2.01.2009

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


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. ?>
Go to the top of the page
+Quote Post
loocek
post
Post #10





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 18.04.2009

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


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)
Go to the top of the page
+Quote Post
Pilsener
post
Post #11





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.09.2025 - 02:53