Спустя 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 написал(а):
Можно это сделать типа так.
так
Но это в том случае, если Вы уверены что id последней записи больше чем id более ранних записей.
Если поле id является автоинкрементным, что на то похоже, то нет гарантий в этом. Вот к примеру, открываю счас таблицу на одном из сайтов. С этой таблицей происходят только операции вставки, и там всего лишь около 5000 записей, тем не менее, нахожу записи с id большим, чем у более последних записей.
Поэтому способ определения последней записи по наибольшему id сам по себе не является корректным. Как вариант, можно использовать поля для хранения времени создания записи.
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, а предыдущее?
вот, поставлю по другому вопрос. как вывести не текующее значение id, а предыдущее?
Спустя 4 минуты, 54 секунды (8.05.2010 - 19:43) andyp написал(а):
Текущее значение известно = $id.
Предыдущее тут и получаем
select max(id) from table where id<$id .
Т.е. находим наибольшее значение id, которое меньше чем текущее значение $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
теперь у меня всё получилось что я хотел. всем огромное спасибо за помощь!