Забыли пароль?
Запросите новый здесь.

Автор темы: Pisatel
ID темы: 2158
Информация:
Тема содержит 5 сообщения, была просмотрена 2890 раз.
Просмотр темы
PHP-Fusion Russia » Веб-разработка » MySQL
 Распечатать тему
ORDER BY в зависимости от статуса
Pisatel
Всем доброго времени суток. Нужна помощь, мастера. Есть таблица, в которой ячейки типа article_id, article_snippet, ... article_phone, article_email, article_skype, article_link, article_vip. Сортировка идет по исходным настройкам статей, но мне нужно еще условие: если в последней ячейке (вип статус) значение == 1, то эти статьи должны быть выше остальных в выдаче. Вот начальный запрос
Скачать исходники  Код
    $result = dbquery(

   "SELECT ta.article_id, ta.article_subject, ta.article_snippet, ta.article_datestamp, ta.article_url, ta.article_phone, ta.article_email, ta.article_skype, ta.article_link, ta.article_vip FROM ".DB_VIP_ARTICLES." ta

   WHERE article_cat='".$_GET['cat_id']."' AND article_draft='0' ORDER BY ".$cdata['article_cat_sorting']." LIMIT ".$_GET['rowstart'].",15"

    );




Буду благодарен за помощь.

Объединено 16.04.2014 16:08:
Сделал вот так: в предыдущем запросе сделал выборку из article_vip, получилось следующее
Скачать исходники  Код
    $result = dbquery(

   "SELECT ta.article_id, ta.article_subject, ta.article_snippet, ta.article_datestamp, ta.article_url, ta.article_phone, ta.article_email, ta.article_skype, ta.article_link, ta.article_vip FROM ".DB_VIP_ARTICLES." ta

   WHERE article_cat='".$_GET['cat_id']."' AND article_draft='0' ORDER BY ".($cdata['article_vip'] == "1" ? "article_vip DESC" : $cdata['article_cat_sorting'])." LIMIT ".$_GET['rowstart'].",15"

    );



Вроде, работает, но вот че-та сомнения у меня в верности...


Изменил(а) Pisatel, 16.04.2014 13:08
 
Web
Polarfox
Можешь в ордер бу добавить вперед этот вип, вначале будет сортировка по нему, далее сортировка по выбранной колонке, или сделать его вторым - будет наоборот.

Те 2 порядка враз применится один за другим, ну или твой вариант - не такой уже совсем.

типа так
Скачать исходники  Код
ORDER BY article_vip DESC, ".$cdata['article_cat_sorting']."



если синтаксис такой у $cdata['article_cat_sorting'] конеш


Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Pisatel
PolarFox, понял, спасибо! А то с моим вариантом проблемы начались, записи в предыдущем запросе начали дублироваться...

 
Web
Polarfox
хз что за "дублироваться" это сортировка а не группировка или еще что, не может такого быть чтоб были дубли.


Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Pisatel
Да не, я в предыдущем запросе пытался делать выборку с помощью объединения INNER JOIN, чтобы получить article_vip, видимо, условие было неверно составлено.

 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Топ 5 пользователей форума
Zaxap Zaxap (1,090)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)   SchreiBear SchreiBear (625)