Forum Webscript.Ru

Общие => Веб-технологии => Тема начата: webdeveloper от 27 Июня 2001, 02:43:22

Название: Организация поиска по базе данных
Отправлено: webdeveloper от 27 Июня 2001, 02:43:22
Уважаемые коллеги. Возникла идея обсудить как лучше организовать поиск. Точнее не столько сам поиск сколько работу ASP/PHP - шки которая этот поиск делает.
Вот сегодня написал файл который делает поиск по базе, и выдает результаты в виде простенькой таблички. Потом появилась задумка добавить разбиение на страницы, и варианты сортировки (по возрастанию, по дате и т.д.).

Вот здесь и возник вопрос. Обычно результаты из формы передаются методом POST. Но тогда если пытаешься сортировать уже готовую таблицу при помощи простых линков ничего не выходит. Данные на сервер уже передаются методом GET. Я все делал через GET и в каждую ссылку для сортировки в качестве параметров писал содержимое формы. Еще можно через куки сделать но мне этот способ, что то не нравится.

Какие еще идеи есть?
Название: Организация поиска по базе данных
Отправлено: webdeveloper от 28 Июня 2001, 19:01:30
что, неужели никаких идей? :D
Название: Организация поиска по базе данных
Отправлено: !ataMAN! от 28 Июня 2001, 20:29:43
Можно сделать скрытую форму, а вместо кнопки отправления - использовать рисунки. Что-то типа:
Название: Организация поиска по базе данных
Отправлено: webdeveloper от 29 Июня 2001, 19:11:33
Цитировать
!ataMAN! (28-06-2001 20:29):
Можно сделать скрытую форму, а вместо кнопки отправления - использовать рисунки. Что-то типа:

Ты о чем? Причем тут кнопки то - речь идет о способе передачи данных на сервер. Если ты получаешь большое колличество результатов то нужно делать разбиение на страницы, и по этим страницам ты уже передвигаешься при помощи метода GET. А данные с сервера ты сначала получаешь через форму. Если ты ее отправляешь методом POST то тогда когда ты попробуешь перейти на другую страницу, ты ничего не получишь. Данные для запроса на сервер не отправятся. Поэтому нужно все отправлять на сервер через GET. Все бы хорошо, но некоторые браузеры накладывают на длину данных, передаваемых через QueryString, ограничение по длине. Вот я и спрашивал какие еще идеи есть у почтеной публики ?

Я знаю еще способ - все делать через POST - писать все в скрытые поля формы но это не красиво.
Название: Организация поиска по базе данных
Отправлено: от 29 Июня 2001, 20:23:57
Яндекс делает методом GET. Я думаю, что и тебе хватит длины.
Название: Организация поиска по базе данных
Отправлено: от 16 Июля 2001, 11:56:06
Я делал следующим образом - через get передавал индекс начала списка и кол-ва результатов на странице (типа выводить с 10-го по 20 результатов на страницу). Скрипт получает данные, производит поиск, и выдает результат и передает сам себе уже изменный индекс (выводить с 10+20 по 20 результатов). Ест-нно сортировка должна каждый раз производиться одним методом. Можно кол-во рез-тов на страницу не выводить, а сделать вшитым, но теряется универсальность.  Пример на http://ucpk.ru/dised/bibliotek/bibliotek.htm
Название: Организация поиска по базе данных
Отправлено: от 16 Июля 2001, 12:29:06
Ну и, естественно, данные для поиска передаваться должны - т.е. каждый раз еще и данные с первой формы плюсуются. Так что, если длины GET первый раз хватило, то и потом хватит с учетом еще нескольких байт.
Название: Организация поиска по базе данных
Отправлено: AliMamed от 16 Июля 2001, 13:26:07
Цитировать
NAS (29-06-2001 20:23):
Яндекс делает методом GET. Я думаю, что и тебе хватит длины.

кстати о том, как Яndex выводит результаты поиска.

яндекс производит поиск после ввода юзером через ГЕТ поискового запроса.
если кол-во найденных документов превышает заданное количество, которое выводится на странице, яндекс сейвит результаты поиска в темп.файл и постраничный вывод потом производится из темп файла (а не по новому результату поиска).