Problem: Przypuśćmy, że ktoś wpisał do bazy zapytanie, które zawiera zaawansowane opcje wyszukiwania włączając w to zagnieżdżone nawiasy, operatory logiczne itp. Zapytanie to zwróciło okolo 500 rekordów. Jasną rzeczą jest, że nie wypiszę tych wszystkich 500 wyników na jednej stronie, tylko powiedzmy w porcjach po 20.
Pytanie: Jak zrobić, żeby porcjować te wyniki bez ponownego wysyłania zapytania. Tzn. nie chcę stosować, powiedzmy,
Kod
SELECT * FROM moja_tabela WHERE (pole = 'abc' AND ...................) LIMIT 350, 20
bo to powoduje ponowne przetworzenie zapytania (co zajmuje czas!), a następnie obcięcie go do zaledwie 20 wyników. Jak to zrobić? Czy wysyłać cookie z numerami wyników, czy może przekazywać parametry w url'u, czy ewentualnie "spakować" te numery?
Rozwiązanie przez cookie albo url wydają się być nierealne, zważywszy na ilość potencjalnych rekordów do zwrócenia (przy 1000 wynikach rozmiar ten wyniesie około 3000 bajtów, co zniechęci do dalszych poszukiwań).