Как построить такой список из БД

Lloyd

Новичок
Как построить такой список из БД

Такая вот задача встала.

Имеется таблица статей:
id | date | name

И например выводятся все статьи за 2005 год:

1. Одна статья
2. Вторая
3. Еще одна
......
99. Последняя статья за этот 2005 год

Здесь все понятно, список из цифр создаем с помощью счетчика (например от $i=0, $i++)

Но если кликнуть на конкретную статью, например под номером 3, необходимо вывести такое:

2. Предыдущая статья

3. Третья статья
Текст статьи

4. Следующая статья

Как построить такой список?
 

Фанат

oncle terrible
Команда форума
в скрипте, который выводит статью, запрашивать id следующай и предыущей статей
 

Lloyd

Новичок
Как выбрать N-ый элемент, N+1 и N-1 элементы ?

Таблица

id | date

101 | 01.01.2005
105 | 02.01.2005
108 | 03.01.2005
110 | 05.01.2005


id - auto_increment

Как выбрать конкретный элемент с id, предыдущий элемент и следующий элемент (отсортированый например по date)?
 

Фанат

oncle terrible
Команда форума
с помощью запросов SQL

-~{}~ 26.02.06 16:20:

а за кросспостинг можно и схлопотать...
 

Lloyd

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

А с помощью каких запросов SQL? А не соображу по какому критерию вибирать эти три элемента. По id нельзя т.к. он пожет и не по порядку идти. Здесь надо по дате выборку сделать, но как сделать одним запросом не соображу.
 

Фанат

oncle terrible
Команда форума
Не можешь сообразить, как одним - делай, сколько получится.
 

Lloyd

Новичок
$query_1 = "SELECT * FROM table WHERE id = 105 ORDER BY date LIMIT 1"

$query_2 = "SELECT * FROM table WHERE date < $query_1[0]['date'] ORDER BY date LIMIT 1"

$query_3 = "SELECT * FROM table WHERE date > $query_1[0]['date'] ORDER BY date LIMIT 1"

Так что ли?
Как-то некрасиво...
 

SelenIT

IT-лунатик :)
Lloyd
Ну да, не очень красиво - в первом запросе LIMIT явно лишний :) И направление сортировки в одном из запросов надо поменять.
А все-таки: почему даты, идущие не по порядку, выбрать с LIMIT'ом можно, а id-ы - нельзя?
 
Сверху