Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Постраничный вывод данных из нескольких табл. (Alexey Vaskin) 31/10/2003 - 12:10:15
      Re: Постраничный вывод данных из нескольких табл. (Dinky) 31/10/2003 - 18:27:25
      Re: Постраничный вывод данных из нескольких табл. (Alexey Vaskin) 03/11/2003 - 06:31:49

> Original message text:
> From: Alexey Vaskin - 31/10/2003 - 12:10:15
> Subject:Постраничный вывод данных из нескольких табл.
> -----------------
> Есть несколько таблиц (для простоты возьмем две). Производится поиск. По умолчанию, если не указано другое, поиск производится по всем таблицам на совпадение. Необходимо результаты поиска выводить постранично. В случае одной таблицы проблем никаких. Здесь великолепно справляется LIMIT. Но вот вопрос: как вывести постранично данные сначала из одной таблицы, потом из другой, и, в случае большего количества таблиц, так далее. Приведу пример.
> Допустим есть две таблицы (синтаксис описания абстрактный)
> tabl1 (
> id int ...,
> text varchar(255)
> )
>
> tabl2 (
> id int ...,
> text varchar(255)
> )
>
> Поиск по текстовым полям дал 23 записей из первой таблицы и 12 из второй. На странице решено выводить по 10 записей. Сначала необходимо показать данные из первой таблицы, затем из второй.
> Для первой таблицы использование LIMIT offset, rows оправдывает себя. Но как применить его для второй, т.к. на первой и второй страницах данные из второй таблицы не будут показано вообще, на третьей лишь частично (7 записей), а на четвертой - оставшиеся 5.
>
> UNION, который позволил бы решить проблему не предлагать. Т.к. он появился лишь в 4.0.0, а провайдер использует 3.23.58.
> Временные таблицы тоже не очень интересны, т.к. существуют лишь в пределах времени жизни соединения с БД, которое закрывается при окончании работы скрипта.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>


From: Alexey Vaskin - 03/11/2003 - 06:31:49
Subject:Постраничный вывод данных из нескольких табл.
-----------------
Насколько плох такой вариант? При каждом выполнении скрипта, будь то случай, когда пользователь нажимает "Найти", либо при переходе на следующую(предыдущую) страницу, выполнять поиск без использования LIMIT, но с занесением найденных записей из всех таблиц во временную таблицу. А уже из нее с помощью LIMIT выводить записи согласно текущей страницы.
Вариант с сессиями может быть и ничего, конечно, но при увеличении количества таблиц будет усложняться логика и увеличиваться загроможденность.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
11360



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |