Разбиение данных на «сохраненный» поиск - PullRequest
0 голосов
/ 26 апреля 2010

Я создаю страницу, которая является результатом поиска ...

Когда вы просматриваете один из результатов, в нижней части страницы мне нужно вставить ссылки " Следующий результат " и " Предыдущий результат ", такие как нумерация страниц. ... Но из [я думаю] сохраненного поиска, верно?

Как вы, люди, сделали бы это?

Obs .: Я буду использовать CakePHP (PHP) и MySQL

-

Обновление: Проблема не в том, как разбить на страницы результаты поиска, например "20 результатов на страницу" ... Мне нужно переходить от одной записи к другой, последовательно в том же результате поиска.

Допустим, я нашел записи 3, 5, 8 и 9 с помощью своего поиска ... Затем я нажимаю, чтобы просмотреть запись №5, и я могу нажать на ссылку «следующий результат», чтобы перейти к записи №8.

-

Возможное решение # 1

Создать массив с идентификаторами результатов, например:

$results = array(3, 5, 8, 9);

И сохраните этот массив в сеансе или файлах cookie с токеном (SHA1, MD5 или UUID) и передайте этот токен как параметр GET в URL.

Ответы [ 2 ]

1 голос
/ 26 апреля 2010

Использование ограничений и смещений запросов. Например, на странице 1 смещение равно 0, а предел - это количество результатов, которое вы хотите. По мере продвижения нумерации страниц происходит смещение. Смещение указывает, что вы хотите получить определенное количество результатов, начиная, например, с 11-го результата.
Я никогда не использовал CakePHP, но эта статья , кажется, хорошо объясняет, как сделать нумерацию страниц.

0 голосов
/ 26 апреля 2010

Я не знаю о торте, но все, что вам нужно сделать, - это использовать метод GET для формы поиска и сохранить значения строки запроса в URL.

В простом PHP я бы использовал функцию http_build_query(),скажем,

if (isset($_GET['page'])) unset($_GET['page']);
$qs=http_build_query_string($_GET);
$url="?$qs&page=$page";

Что касается кода нумерации страниц, вы можете найти почти тысячу тем здесь на SO

...