Stronicowanie, numerowanie php


(Pintu) #1

Mam pewien problem, gdyż chciałbym zastosować na swojej stronie stronicowanie, numerowanie (czy jak to się nazywa) stron.

Znalazłem na necie pare gotowych skryptów, ale nie wiem jak je zastosować do mojej podstrony. Chciałbym, aby np było na stronie określona ilość pozycji i następnie na dole pojawiały się numerowanie, czyli <>

Czy mógłby ktoś wyjaśnić mi zasadę działania tego stronicowania ? Bo w skrypcie są tablice, rekordy które za dużo mi nie mówią, a chciałbym sobie takie stronocowanie zastosowac? Czy mógłby mi ktoś to wytłumaczyć na zasadzie jakiegos tutoriala?

Dodam tylko że bez bazy danych MySQL


(ra-v) #2

załóżmy że strona ma link typu

http://domena.pl/aktualnosci.php

Wtedy fragment kodu musi wygladać mniej więcej tak, oczywiście to jest ogólne wytłumaczenie

// jeśli link wygląda np. "http://domena.pl/aktualnosci.php?str=3" to będzie 3

// jeśli link wygląda np. "http://domena.pl/aktualnosci.php" to będzie 1

$str = !empty($_GET['str']) ? $_GET['str'] : 1;

// przyjmijmy

$rekordy_na_strone = 12;

// obliczenie wartości od której startujemy

// dla $str=1 będzie 0, $str=3 to będzie 24 itd.

$rekord_od = ($str*$rekordy_na_strone)-$rekordy_na_strone; 


// zadajemy pytanie do bazy

$wynik = mysql_query("SELECT * FROM TABELA ORDER BY `data` LIMIT $rekord_od,$rekordy_na_strone");

// dopóki będzie rekord to pisz coś na bazie zapytania

while( $rekord = mysql_fetch_assoc($wynmik) ){

  echo $rekord['pole1'].": ".$rekord['pole2']."
";

}

Myślę ze bardziej łopatologicznie tego nie da się wytłumaczyć

PS. Sprawdź czy nie zrobiłem jakiś błędów, bo pisałem od razu na forum.


(matiit) #3

Parametr get (np. page)-> przechowuje wybraną stronę.

Gdy go nie ma page = 1

Warto miec zmienną, która przechowuje liczbę pozycji na stronie.

Liczbę stron (jeśli potrzebna) liczymy licząc wpisy w bazie i dzieląc to przez liczbę wpisów na stronę...

przy wyciąganiu danych stosujemy LIMIT...


(Pintu) #4

No tak, dzięki ra-v i matiit , ale napisałem aby owe stronicowanie bylo bez bazy danych MySQL, bo z tym nie mam za wiele wspolnego. Czy da się takie numerowanie zrobić bez MySQL? Bo jesli nie to teraz bede musial sie pobawic nad baza MySQL :slight_smile:


(Sitemaster) #5

Da się. Tak samo stronicowanie możesz zaimplementować bo bazy opartej plikach czy tablicach array itp.

tu masz jakiś przykład oparty na tablicy array - http://www.web-max.ca/PHP/misc_1.php

więcej http://www.google.pl/search?hl=pl&q=php ... pagination