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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Предыдущий следующий id

Сообщения:  [1-4] 

 
 автор: Апельсин   (20.04.2008 в 20:48)   письмо автору
 
   для: Valick   (20.04.2008 в 17:26)
 

cheops, Valick,
Большое спасибо за внимание к топику.
Вот мой вариант реализации.

// Берем откуда-то номер текущего поста
$data['idCurrent']=18;

// Вытаскиваем Id предыдущего поста и если он существует, записываем в массив
$query=mysql_query("select idposts from posts where idposts <{$data['idCurrent']} order by idposts desc limit 0,1");
$a= mysql_fetch_array($query);

if(''!==(string) $a['idposts']){     
    $data['idPrevious']=$a['idposts'];
}

//  Этим запросом вытаскиваем текущий пост и дополнительно Id следующего поста.
$query=mysql_query("select * from posts where idposts >={$data['idCurrent']} order by idposts limit 0,2");
$sdata['postData']=mysql_fetch_array($query);

// Вытаскиваем Id следующего поста и если он существует, записываем в массив
$a= mysql_fetch_array($query);
if(''!==(string) $a['idposts']){     
    $data['idNext']=$a['idposts'];
}


Подскажите пожалуйста, насколько это правильное решение. Можно ли то же самое реализовать как-то более изящно?

   
 
 автор: Valick   (20.04.2008 в 17:26)   письмо автору
 
   для: Апельсин   (20.04.2008 в 13:06)
 

Ну скорее всего надо сместить немного выборку... вытаскивать предыдущий ID как основной и затем два последующих.

   
 
 автор: cheops   (20.04.2008 в 17:07)   письмо автору
 
   для: Апельсин   (20.04.2008 в 13:06)
 

За один раз не получится, придётся два запроса выполнять...

   
 
 автор: Апельсин   (20.04.2008 в 13:06)   письмо автору
 
 

Что есть:
Есть таблица с двумя колонками posts:
idposts / post

На странице выводится только одна строка таблицы за раз.
Например по ссылке project/?post=18 мы выводим строку с idposts=18

Задача:
Сделать ссылочки "следующий пост" и "предыдущий пост", сразу с прямыми ссылками.
Предыдущий пост -> project/?post=17
Следующий пост -> project/?post=20 (19й удален, значит мы не можем просто написать 18+1).

Вопрос:
Как поизящнее составить запрос, что бы вытащить за раз все нужные данные, включая ID предудущего и следующего поста.

   

Сообщения:  [1-4] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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