Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sposoby stronicowania wyników
Forum PHP.pl > Forum > PHP
marcini82
Witam!

Zastanawiam sie nad sposobem stronicowania wyników, np. dla systemu newsow czy innego rodzaju ogloszen.

W zasadzie przychodza mi do glowy 2 sposoby:

1. Mam klase odpowiedzialna. mi.in. za pobieranie newsow z bazy i zwracanie w tablicy. Mozna by zaimplementowac tutaj pobieranie tylko wybranego zakresu wierszy i potem zadbac o odpowiednie wyswietlenie tego na stronach. Rozwiazanie jest bardziej skomplikowane i latwiej sie mozna "zakopac", ale za to ilosc danych wyciagana z bazy o obrabiana jest stosunkowo niewielka.

2. Mozna tez pozwolic tej klasie na pobranie wszystkich wierszy z bazy, a potem zrobic stronicowanie za pomoca gotowej klasy, np. Pear Pager, i wyswietlic tylko wiersze z aktualnej strony. Ale zastanawiam sie, czy nie bedzie to zbyt wielki narzut niepotrzebnych w danej chwili danych i zbyt duza strata na wydajnosci. Bo wiekszosc pobranych z bazy danych i tak nie zostanie wyswietlona.

Zastanawia mnie, jaki sposob preferuja szanowni Forumowicze? Co sie lepiej sprawdza w praktyce?
nospor
wpisz se do wyszukiwarki forum stronicowanie, a będziesz wiedzial, jak to sie robi... smile.gif
pozatym w dziale algorytmy, klasy, funkcje masz kilka klas do stronicowania
LBO
Cytat
2. Mozna tez pozwolic tej klasie na pobranie wszystkich wierszy z bazy, a potem zrobic stronicowanie za pomoca gotowej klasy, np. Pear Pager, i wyswietlic tylko wiersze z aktualnej strony. Ale zastanawiam sie, czy nie bedzie to zbyt wielki narzut niepotrzebnych w danej chwili danych i zbyt duza strata na wydajnosci. Bo wiekszosc pobranych z bazy danych i tak nie zostanie wyswietlona.

nigdy tak nie rob... przy wiekszych bazach danych to mocno spowalnia skrypt... po to na przyklad w SQL jest LIMIT.. wszelkie operacje a w szczegolnosci na bazach danych nazley optymalizowac (przyspieszac)
marcini82
No cos w tym rodzaju podpowiadala mi tez intuicja...

Ale w takim razie przydatnosc klas takich jak Pear Pager jest dla mnie mocno watpliwa. No chyba ze w zastosowaniach nie zwiazanych z bazami danych. Ale do czego w takim razie? Moze stronicowanie danych z XML... Nie wiem.
LBO
z XMLem jest klopot... znam systemy (hehe, biggrin.gif moze przzesadzilem z nazwaniem tego systemem) gdzie pliki z danymi sa dzielone (np po 1000 unique wpisow) + plus config z ich indexem... wtedy mozna sie bawic z wczytywaniem calego pliku (choc to niestty i tak bardzo nieefektywne).. ewentualnie XML parser uzyc (nie wczytuje pliku w calosci tylko leci wraz z pointerem) jednak przy duzych XMLowych bazach to tez klopot... chmmm, najlepszym rozwiazaniem sa dedykowane database'y i tyle.. cheers
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.