Автор Тема: Организация поиска по базе данных  (Прочитано 4572 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн webdeveloper

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 11
  • +0/-0
  • 0
    • Просмотр профиля
Уважаемые коллеги. Возникла идея обсудить как лучше организовать поиск. Точнее не столько сам поиск сколько работу ASP/PHP - шки которая этот поиск делает.
Вот сегодня написал файл который делает поиск по базе, и выдает результаты в виде простенькой таблички. Потом появилась задумка добавить разбиение на страницы, и варианты сортировки (по возрастанию, по дате и т.д.).

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

Какие еще идеи есть?
-----------------------------

Оффлайн webdeveloper

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 11
  • +0/-0
  • 0
    • Просмотр профиля
Организация поиска по базе данных
« Ответ #1 : 28 Июня 2001, 19:01:30 »
что, неужели никаких идей? :D
-----------------------------

Оффлайн !ataMAN!

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 94
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.chainikam.net
Организация поиска по базе данных
« Ответ #2 : 28 Июня 2001, 20:29:43 »
Можно сделать скрытую форму, а вместо кнопки отправления - использовать рисунки. Что-то типа: :)
Делаю и поддерживаю сайты о заработке бесплатно всем желающим!
Скажи чайникам - нет!

Оффлайн webdeveloper

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 11
  • +0/-0
  • 0
    • Просмотр профиля
Организация поиска по базе данных
« Ответ #3 : 29 Июня 2001, 19:11:33 »
Цитировать
!ataMAN! (28-06-2001 20:29):
Можно сделать скрытую форму, а вместо кнопки отправления - использовать рисунки. Что-то типа: :)

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

Я знаю еще способ - все делать через POST - писать все в скрытые поля формы но это не красиво.
-----------------------------

  • Гость
Организация поиска по базе данных
« Ответ #4 : 29 Июня 2001, 20:23:57 »
Яндекс делает методом GET. Я думаю, что и тебе хватит длины.

  • Гость
Организация поиска по базе данных
« Ответ #5 : 16 Июля 2001, 11:56:06 »
Я делал следующим образом - через get передавал индекс начала списка и кол-ва результатов на странице (типа выводить с 10-го по 20 результатов на страницу). Скрипт получает данные, производит поиск, и выдает результат и передает сам себе уже изменный индекс (выводить с 10+20 по 20 результатов). Ест-нно сортировка должна каждый раз производиться одним методом. Можно кол-во рез-тов на страницу не выводить, а сделать вшитым, но теряется универсальность.  Пример на http://ucpk.ru/dised/bibliotek/bibliotek.htm

  • Гость
Организация поиска по базе данных
« Ответ #6 : 16 Июля 2001, 12:29:06 »
Ну и, естественно, данные для поиска передаваться должны - т.е. каждый раз еще и данные с первой формы плюсуются. Так что, если длины GET первый раз хватило, то и потом хватит с учетом еще нескольких байт.

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Организация поиска по базе данных
« Ответ #7 : 16 Июля 2001, 13:26:07 »
Цитировать
NAS (29-06-2001 20:23):
Яндекс делает методом GET. Я думаю, что и тебе хватит длины.

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

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28