Перейти к контенту

Вывод последних 5 альбомов из галереи


Рекомендуемые сообщения

Как сделать вывод 5 последних альбомов из назначенных категорий галлереи. Допустим категорий 5.
Ссылка на комментарий
Поделиться на других сайтах

вывести в отдельно созданный файл допустим под названием albomi.php

приэтом в этот файл приедется функции инклудить.

Ссылка на комментарий
Поделиться на других сайтах

Хм, ну это собственно вам и вернет то что требуется

select * from ibf_gallery_albums where (category_id=<id категории, или множество категорий>) order by last_pic_date desc limit 5

Ссылка на комментарий
Поделиться на других сайтах

спасибо =)

 

limit не воспринимает. а так для одной директории работает

множество категорий как записывается?

Ссылка на комментарий
Поделиться на других сайтах

Что значит limit не воспринимает ?

для множества пишите так:

select * from ibf_gallery_albums where (category_id in (<id1>,<id2>,<id3>)) order by last_pic_date desc limit 5

Ссылка на комментарий
Поделиться на других сайтах

В MSSQL немного по другому вместо Limit используйтеконструкцию

TOP 5 //вернет 5 строк результата запроса

TOP XX PERCENT //возвращает кол-во строк равное XX проценту от общего кол-ва строк результата выполнения запроса

Ссылка на комментарий
Поделиться на других сайтах

select top 5 * from ibf_gallery_albums where (category_id in (21,22,23,24,25)) order by last_pic_date

примерно вот так. только выводит первые 5 строчек а не 5 последних

Ссылка на комментарий
Поделиться на других сайтах

Kvendi, напишите мне для общего развития, как тогда записывают "LIMIT 100, 10" в MSSQL?
Ссылка на комментарий
Поделиться на других сайтах

Подзапросом.

Но уж больно эти подзапросы + TOP дают нагрузку большую. (при использовании TOP СУБД создаёт временную таблицу)

Ссылка на комментарий
Поделиться на других сайтах

Ну на самом деле общего решения нет, так как конкретно такая возмонжость в MSSQL отсутствует, на соклько мне известно (хотя я не спец в MSSQL), но общим решением для него будет:

SELECT * FROM table LIMIT n,n1

в MSSQL это будет примерно так:

select top n1 * from (select top n+n1 * from tablex order by fieldy asc) order by fieldy desc

 

Насчет нагрузки на сервер Song полностью прав, любое хитрое решение для замены Limit -а в MSSQL будет очень конкретно добавлять нагрузки

Ссылка на комментарий
Поделиться на других сайтах

Там есть достаточно много решений, но они не кросс-T-SQLные.

Т.е. в одной СУБД пойдут, в другой - нет.

 

Например есть там такая штука - ROWNUMBER() можно её сделать and rownumber() between 20 and 30

 

можно создать временную таблицу с identy первичным ключом, нагнетать туда данные, а потом выбрать по id between x and x + y

Ссылка на комментарий
Поделиться на других сайтах

Да, вариантов действительно много, но универсальным будет один :

для выборки диапазона строк : выбираем кол-во строк, равное кол-ву максимума диапазона и далее в цикле отсеиваем первые n-ненужных

Ссылка на комментарий
Поделиться на других сайтах

На самом деле то что я предложил выше - временная таблица, это быстрее чем два запроса с TOP ("отсеивание лишних" на n-ой странице будет оч. тяжело даваться).

 

Тем более что T-SQL создаёт временные таблицы на-лету, обычным селектом, не то что Oracle.

Ссылка на комментарий
Поделиться на других сайтах

Спасибо, жесть :D
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.