Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Как правильно выбрать из бд 5 новостей


Автор: KuZyagroup 8.4.2010, 12:28
Задача. Есть база. В ней новости которые имеют поле created.
При отображение текущей новости нужно отобразть список из заголовков 5 новостей:
Код

2 более ранних
текущая
2 более поздних

Но если наша новость сама свежая то список приобретет вид:
Код

4 более ранних
текущая

И таких вариаций сами понимаете (4-1, 3-1-1, 2-1-2, 1-1-2, 1-4).

Как правильно сформулировать запрос к бд.
Я понимаю что как-то нжно узнать id первой из 5 выводимых новостей и далее с помощью LIMIT 0, 5 проема будет решена, но как это сделать.

Автор: patap 8.4.2010, 12:48
одним запросом, честно говоря, не знаю, но можно 2мя


это будет то, что раньше текущей
Код

SELECT * FROM news WHERE (SELECT created FROM news WHERE id = 3) > careated LIMIT 0,4


это будет то, что позже текущей (будет включать текущую новость)
Код

SELECT * FROM news WHERE (SELECT created FROM news WHERE id = 3) <= careated LIMIT 0,5


и далее все это дело на php обработать

Автор: KuZyagroup 8.4.2010, 13:05
Спасибо большое,
примерно так я уже реализовал, но вышло довольно громоздко. По этому и задал здесь вопрос, может кто-то подскажет метод проще

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)