mat@omega
20.02.2006, 23:46:32
Witam serdecznie.
Mam pewien z pewnością droby problem.
W jaki sposób w php zrobić, aby np baza danych która posiada np. 20 000 rekordów podzielić na częsci np. 20, a użytkownik sam mógł zadecydować którą część rekordów chce zobaczyć. Chodzi mi o coś takiego jak jest np. na tym forum
Wszystkie posty podzielone są na mniejsze grupy po ileś tam postów. Jeśli chcemy zobaczyć starsze posty to klikamy na kolejną zakładkę. Oczywiście skrypt automatycznie dzieli posty.
Mam nadzieje, że wyjaśniłem o co chodzi.
To o co mi chodzi widać np. na tym forum na dole (1,2,3,4,5,6...) jeśli chcemy zobaczyć starsze posty niż powiecmy 40 ostatnich to klikamy na 2 jeśli chcemy zobaczyć 40 jeszcze wcześnijeszych postów to 3 itd.
Bardzo chciałbym cos takiego zrobić ponieważ zrobiłem licznik IP do strony i na kilku stronach przekracza już ilość 20 000 jak sami doskonale rozumiecie zobaczenie tej listy to wczytanie 20 000 rekordów, a trochę się to wczytuje. Chciałbym aby skrypt wyświetlił np 100 ostatnich rekordów, a w razie potrzeby użytkownik, aby mógł zobaczyć starsze rekordy, które będą podzielone w grupy np. po 100 rekordów.
Z góry dziękuję za pomoc
POZDRAWIAM
mike
20.02.2006, 23:56:43
Wpisz w wyszukiwarce sortowanie (bądź porcjowanie) i dostanisz mnóstwo tematów poruszających ten problem.
Przykładów roziązań też znajdziesz wiele.
bronx
20.02.2006, 23:58:20
użyj w zapytaniu parametru LIMIT
jacknn
21.02.2006, 00:09:23
mniej więcej tak to robisz:
<?php
$ile = 5; // tu okreslasz ile rekordow ma być na stronie
$page = trim($_GET['page']); // zmienna potrzebna do wybrania odpowiedniej podstrony $podstron=ceil($wszystkich/$ile); // wyliczamy liczbę podstron
// to poniżej to poprostu dodawanie przycisków w postaci następna poprzednie, to a
kurat przypadkowy kod, możesz zmieniać dowolnie
if ($page>0) echo "<center> [<a href=produkty.php?page=".($page-1)."><b>«</b> poprzednie</a>]"; else
echo "<center>";
if ($page<$podstron-1) echo "[<a href=produkty.php?page=".($page+1).">następne <b>»</b></a>]</center>";
else echo "";
echo "<br>";
$sql = "SELECT * FROM tabela LIMIT ".($page*$ile).",".$ile."; // teraz konkretne zapytanie do bazy z limitem
// to poniżej to normalne wyświetlanie danych z tabeli za pomocą pętli while
echo "".$rekord['costam'].""; }
?>
mat@omega
21.02.2006, 15:50:05
Postaram się sprawdzić ten skrypt. Bóg zapłać dobry człowieku

POZDRAWIAM !