За последние 24 часа нас посетили 157915 программистов и 2074 робота. Сейчас ищут 1146 программистов ...

Список предыдущих и следующих статей

Тема в разделе "PHP для новичков", создана пользователем desertFox, 13 дек 2014.

  1. desertFox

    desertFox Активный пользователь

    С нами с:
    19 окт 2013
    Сообщения:
    62
    Симпатии:
    0
    Добрый день,
    интересует можно ли получить в одном sql-запросе 5 предыдущих и 5 следующих статей? пример как это делается.
    [​IMG]
    Открываем страницу статьи, а под ней список ссылок на предыдущие и следующие статьи.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Да можно, нужно смотреть как всё реализовано и уже делать решение.
    Как минимум надо знать по каким критериям идёт определение предыдущих и следующих данных.
     
  3. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    можно например выполнить двойной запрос с лимитом пять отталкиваясь от айдишника текущей статьи. ну и объединить их через юнион.
     
  4. desertFox

    desertFox Активный пользователь

    С нами с:
    19 окт 2013
    Сообщения:
    62
    Симпатии:
    0
    сейчас такой запрос:

    Код (Text):
    1. SELECT articles.`id`, articles.`title`
    2. FROM `articles`
    3. WHERE articles.`id` <> {id}
    4. ORDER BY articles.`id` DESC LIMIT 5
    как его переделать чтобы получить 5 штук articles.`id` < {id} и 5 штук articles.`id` > {id} ?
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
     
  6. desertFox

    desertFox Активный пользователь

    С нами с:
    19 окт 2013
    Сообщения:
    62
    Симпатии:
    0
    не работает:
    Код (Text):
    1. SELECT articles.`id`, articles.`title`
    2. FROM `articles`
    3. WHERE articles.`id` < {id} LIMIT 5
    4. UNION
    5. SELECT articles.`id`, articles.`title`
    6. FROM `articles`
    7. WHERE articles.`id` > {id} LIMIT 5
    только первая часть срабатывает, всё что после UNION игнорируется, как будто второго запроса и нет
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  8. desertFox

    desertFox Активный пользователь

    С нами с:
    19 окт 2013
    Сообщения:
    62
    Симпатии:
    0
    благодарю, всё заработало как нужно, скобок не хватало) и ещё в первую часть запроса добавил ORDER BY articles.`id` DESC чтобы отсчёт предыдущих статей был нормальным

    Код (Text):
    1. (SELECT articles.`id`, articles.`title`
    2. FROM `articles`
    3. WHERE articles.`id` < {$id} ORDER BY articles.`id` DESC LIMIT 5)
    4. UNION
    5. (SELECT articles.`id`, articles.`title`
    6. FROM `articles`
    7. WHERE articles.`id` > {$id} LIMIT 5)