Седня думал какбы решыть задачю не допуская велосипеда, но видемо неполучилось.
Робочий вариант, да ненрав. мне.
$nav = mysql_query("SELECT `id` FROM `test` WHERE (
`id` = (SELECT MAX(`id`) FROM `test`WHERE `id` <$id)
OR `id` = (SELECT MIN(`id`) FROM `test` WHERE `id` >$id)
)");
$l_nav = '« пред.'; $r_nav = 'след. »';
while($nav1 = mysql_fetch_array($nav))
if($nav1['id'] < $id)
$l_nav = '<a href="?act=view&id='.$nav1['id'].'">« пред.</a>';
else
$r_nav = '<a href="?act=view&id='.$nav1['id'].'">след. »</a>';
echo $l_nav, $r_nav;
Может кто подкажет как решыть задачку, или даже даст свой вариант?
SELECT id FROM table WHERE id < ? ORDER BY id DESC LIMIT 1 // предыдущий
SELECT id FROM table WHERE id > ? ORDER BY id ASC LIMIT 1 // следующий
L!MP, Ну эт понятно, именно одним запросом хотел.
L!MP, Задача такова была. Лан. По твоему лутше полюбому, у мя запрос (аш самому страшно, какой) да ещё и цыкл...
Наверно можно еще так.
SELECT MAX(id) FROM table WHERE id < ? // предыдущий
SELECT MIN(id) FROM table WHERE id > ? // следующий
L!MP, ну да, эти запросы и совмесщены в первом посте.
BoGdAn, хм, действительно