|
|
|
| Подскажите каким запросом выбрать из бд mysql следующую и предыдущую запись? | |
|
|
|
|
|
|
|
для: AlexK_
(07.01.2008 в 16:17)
| | А какова структура таблицы и по какому критерию происходит сортировка? | |
|
|
|
|
|
|
|
для: cheops
(07.01.2008 в 17:29)
| | Давайте возьмем самый простой случай.
Таблица:
messages
id int unsigned not null auto_increment,
post_date datetime not null,
subj tinytext not null,
text text not null,
PRIMARY KEY (id)
Выбираем одну запись запросом:
"SELECT * FROM messages ORDER BY post_date DESC WHERE id =".$_GET['id']
Как выбрать предыдущую и следующую записи? | |
|
|
|
|
|
|
|
для: AlexK_
(07.01.2008 в 17:46)
| | это как раз не самый простой случай. самый простой - сортировка по id
а так... надо доставать дату. потом выбирать записи с бОльшей и меньшей датами и limit 0,1 | |
|
|
|
|
|
|
|
для: AlexK_
(07.01.2008 в 17:46)
| | > "SELECT * FROM messages ORDER BY post_date DESC WHERE id =".$_GET['id']
ORDER BY тут явно лишнее.
> Как выбрать предыдущую и следующую записи?
Поищите на форуме слова "Постраничная" и "навигация". | |
|
|
|
|
|
|
|
для: AlexK_
(07.01.2008 в 17:46)
| | Требуется следующая и предыдущая дата post_date или следующий и предыдущий номер id? | |
|
|
|
|
|
|
|
для: cheops
(07.01.2008 в 19:01)
| | следующий и предыдущий id | |
|
|
|
|
|
|
|
для: AlexK_
(08.01.2008 в 11:45)
| | intval($_GET["id"])+1
intval($_GET["id"])-1 | |
|
|
|
|
|
|
|
для: AlexK_
(08.01.2008 в 11:45)
| | Обычно для этого используют запросы вида
SELECT * FROM messages
WHERE id < $_GET[id]
ORDER BY id
LIMIT 1
|
SELECT * FROM messages
WHERE id > $_GET[id]
ORDER BY id
LIMIT 1
|
| |
|
|
|
|
|
|
|
для: cheops
(08.01.2008 в 14:28)
| | >Обычно для этого используют запросы вида
>
SELECT * FROM messages
WHERE id < $_GET[id]
ORDER BY id
LIMIT 1
|
ORDER BY id DESC
А лучше, на мой взгляд
SELECT MAX(id) FROM messages WHERE id < $GET_id
| и
SELECT MIN(id) FROM messages WHERE id > $GET_id
|
| |
|
|
|
|
|
|
|
|
для: Trianon
(08.01.2008 в 15:11)
| | cheops, Trianon
Спасибо!
Как всегда выручили. | |
|
|
|