Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывести следующий, предыдущий.
 
 автор: AlexK_   (07.01.2008 в 16:17)   письмо автору
 
 

Подскажите каким запросом выбрать из бд mysql следующую и предыдущую запись?

   
 
 автор: cheops   (07.01.2008 в 17:29)   письмо автору
 
   для: AlexK_   (07.01.2008 в 16:17)
 

А какова структура таблицы и по какому критерию происходит сортировка?

   
 
 автор: AlexK_   (07.01.2008 в 17:46)   письмо автору
 
   для: 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']

Как выбрать предыдущую и следующую записи?

   
 
 автор: elenaki   (07.01.2008 в 18:29)   письмо автору
 
   для: AlexK_   (07.01.2008 в 17:46)
 

это как раз не самый простой случай. самый простой - сортировка по id

а так... надо доставать дату. потом выбирать записи с бОльшей и меньшей датами и limit 0,1

   
 
 автор: Unkind   (07.01.2008 в 18:55)   письмо автору
 
   для: AlexK_   (07.01.2008 в 17:46)
 

> "SELECT * FROM messages ORDER BY post_date DESC WHERE id =".$_GET['id']
ORDER BY тут явно лишнее.

> Как выбрать предыдущую и следующую записи?
Поищите на форуме слова "Постраничная" и "навигация".

   
 
 автор: cheops   (07.01.2008 в 19:01)   письмо автору
 
   для: AlexK_   (07.01.2008 в 17:46)
 

Требуется следующая и предыдущая дата post_date или следующий и предыдущий номер id?

   
 
 автор: AlexK_   (08.01.2008 в 11:45)   письмо автору
 
   для: cheops   (07.01.2008 в 19:01)
 

следующий и предыдущий id

   
 
 автор: elenaki   (08.01.2008 в 12:04)   письмо автору
 
   для: AlexK_   (08.01.2008 в 11:45)
 

intval($_GET["id"])+1
intval($_GET["id"])-1

   
 
 автор: cheops   (08.01.2008 в 14:28)   письмо автору
 
   для: 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

   
 
 автор: Trianon   (08.01.2008 в 15:11)   письмо автору
 
   для: 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

   
 
 автор: afdm   (08.01.2008 в 17:55)   письмо автору
 
   для: Trianon   (08.01.2008 в 15:11)
 

вот и ответ на мой вопрос!!! УРА!!! спасибо!!! :)))

http://softtime.ru/forum/read.php?id_forum=1&id_theme=47921&page=1

   
 
 автор: AlexK_   (09.01.2008 в 07:22)   письмо автору
 
   для: Trianon   (08.01.2008 в 15:11)
 

cheops, Trianon
Спасибо!
Как всегда выручили.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования