[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как узнать предыдущее id-значение?
denisov2
как сделать так, чтобы выводилась не id=629, а его предыдущее значение, id=632.



Спустя 13 минут, 37 секунд (8.05.2010 - 18:48) Michael написал(а):
Куда и откуда выводилось?

Спустя 5 минут, 23 секунды (8.05.2010 - 18:53) ИНСИ написал(а):

Спустя 8 минут, 47 секунд (8.05.2010 - 19:02) denisov2 написал(а):
Цитата (welbox2 @ 8.05.2010 - 15:53)
http://www.phpclub.net/manrus/f/mysql-insert-id.html

наверно эта немного не та функция.

Цитата
Куда и откуда выводилось?


я пожалуй напишу подробней. у меня по порядку в MySQL данные по id идут так: 632, 629, 630

Мне нужно, чтобы при выводе информации по id (WHERE id='$_GET[id]') выводилась предыдущее id-значение. то есть если id = 629, то выводилось не «629», а «632». а если id = 630, то соответсвенно чтобы выводилось «629».

p.s. это мне нужно для навигации. я часа 2 думал, как это реализовать, так в голову ничего и не пришло

Спустя 24 минуты, 42 секунды (8.05.2010 - 19:27) andyp написал(а):
Можно это сделать типа так.
 select max(id) from table where id<$id 
или
так

SELECT id
FROM table
WHERE

id < $id
ORDER BY id DESC
LIMIT
1
.
Но это в том случае, если Вы уверены что id последней записи больше чем id более ранних записей.
Если поле id является автоинкрементным, что на то похоже, то нет гарантий в этом. Вот к примеру, открываю счас таблицу на одном из сайтов. С этой таблицей происходят только операции вставки, и там всего лишь около 5000 записей, тем не менее, нахожу записи с id большим, чем у более последних записей.
Поэтому способ определения последней записи по наибольшему id сам по себе не является корректным. Как вариант, можно использовать поля для хранения времени создания записи.

Спустя 11 минут, 44 секунды (8.05.2010 - 19:38) denisov2 написал(а):
andyp, у меня получилось что выводит те данные, которые меньше текущего значения id. мне нужно немного другое.

вот, поставлю по другому вопрос. как вывести не текующее значение id, а предыдущее?

Спустя 4 минуты, 54 секунды (8.05.2010 - 19:43) andyp написал(а):
Текущее значение известно = $id.
Предыдущее тут и получаем
select max(id) from table where id<$id .
Т.е. находим наибольшее значение id, которое меньше чем текущее значение $id.

Спустя 14 минут, 41 секунда (8.05.2010 - 19:58) denisov2 написал(а):
andyp, всё, я понял что ты имел ввиду)

SELECT id FROM img WHERE id < '$_GET[id]' ORDER BY id DESC LIMIT 1


теперь у меня всё получилось что я хотел. всем огромное спасибо за помощь!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.