Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Stronicowanie
Forum PHP.pl > Forum > PHP
revyag
Witam.

Mam pytanie snitch.gif

Odnośnie realizacji wyświetlania wyników wyszukiwania podzielonych na strony.
Mam dwie metody, pierwsza to taka, że wynik zapytania zapisuje do obiektu, serializuje, wrzucam go do sesji a przy przejściu na następną stronę, pobieram go z sesji i wyświetlam wyniki dla tej strony.
Druga to zapamiętanie poszczegónych kryteriów jako osobne zmienne sesyjne i na następnej stronie ponowienie zapytania do bazy na podstawie zapisanych kryteriów.
Kryteriów wyszukiwania jest niewiele maksymalnie 5.
Chciałbym zapytać czy istnieje jakiś inny sposób, może lepszy, oraz jak Wy realizujecie wyświetlanie wyników przy stronicowaniu (chodzi mi o sam sposób zapamiętywnia, mechanizm stronicowania mam zrobiony).

pozdrawiam
nospor
zapamiętywanie stronicowania:
kiedyś w url przekazywałem parametr aktualnej strony. To jednak nie zdało egzaminu, bo gdy z grida dawałem link np. do edycji, to trzeba było ten parametr aktualnej strony również dopisywać do edycji, tylko po to żeby z edycji móc wrócić na właściwą stronę grida. Dość kłopotliwe.

Teraz w sesji pamiętam dla danego grida aktualną stronę i po kłopocie. NIe muszę się bawić w żadne śmieszne linki
revyag
Nie o to mi chodziło snitch.gif
Jak najlepiej przechowywać wyniki wyszukiwania. Czy zapamiętwyać w sesji, czy ponawiać zapytania do bazy na każdej stronie ?
Bo tak naprawde to będzie ciągle to samo zapytanie.
nospor
hehe, nie zakumałem. U nas mamy mechanizm cache'owania i zapytania cache'ujemy. Działa bez zarzutu.
_Mateo
Ja przekazuje wyniki do metody klasy i tam zachodzi proces liczenia/szatkowania/przygotowywania elementów do danego numerka strony. Numerek ten przekazuje metodą get w adresie - jesli przechowasz nr newsa w sesji, to nie mozesz np odoac strony do ulubionych, a przy okazji zasmiecasz serwer.
revyag
@_Mateo: czyli wykonujesz zapytanie raz i tworzysz wszystkie strony od razu ? A jak zapamiętujesz to co klasa stworzy ?
Cathan
@_Mateo: Czy zasysanie wszystkiego z bazy jest dobrym pomyslem?? A co jesli ktos ma gigantyczna baze gdzie jest klkaset tysiecy pozycji questionmark.gif Raz dupłem zmienna i poszedl select na wszystko fox sie powiesil tongue.gif Ja osobiscie nie odwazyl bym sie czegos takiego zrobic na bazie na ktorej pracuje. Poprostu serwer by nie dal rady jesli by zaczeli wszyscy zadawac takie zapytanie. Ja daje jak najmniejsze zapytania ( przez np. "not in ( select top ..." ) Bynajmniej jak dla mnie - stronnicowanie wynikow powinno przedewszystkim odciazac serwer, i jak najbardziej ograniczac zapytania, a zmienne przez GET'a przerzucam.
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.