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

Форум MySQL

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

 

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

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

тема: Номер по порядку
 
 автор: DeeGreeZ   (19.06.2005 в 15:42)   письмо автору
 
 

Доброго дня суток!

Есть таблица, в ней поля ID (уникалный) и mlast int(10). Сортировка по mlast. Как мне получить позицию определённой записи по порядку сортировки.

   
 
 автор: cheops   (19.06.2005 в 15:54)   письмо автору
 
   для: DeeGreeZ   (19.06.2005 в 15:42)
 

Можно воспользоваться запросом вида
SELECT ID, mlast FROM tbl ORDER BY mlast LIMIT 2345, 1

который выведет запись номер 2345 по порядку сортировки.

   
 
 автор: DeeGreeZ   (19.06.2005 в 16:06)   письмо автору
 
   для: cheops   (19.06.2005 в 15:54)
 

Тут дело как раз в том, что я не знаю позиию этой записи. Для того чтобы написать LIMIT X,1 я сначала и должен узнать этот X. Можно конечно в цикле перебирать, но это не эффективно будет. (тем более если база будет очень большой)

   
 
 автор: cheops   (19.06.2005 в 16:09)   письмо автору
 
   для: DeeGreeZ   (19.06.2005 в 16:06)
 

Так а по какому критерию следует отобрать запись? Какая исходная задача?

   
 
 автор: DeeGreeZ   (19.06.2005 в 16:20)   письмо автору
 
   для: cheops   (19.06.2005 в 16:09)
 

Значит так... id это идентификатор записи, mlast это время последнего обновления записи. Сортировка идет по mlast т.е. по времени последнего обновления. При просмотре пользователем определённой записи нужно сделать в форме ссылки на предыдущую и последующую записи. Похожая вещь реализована на этом форуме. при просмотре сообщений темы в правом верхнем углу две ссылки пред. и последующие темы выводятся.

   
 
 автор: cheops   (19.06.2005 в 21:49)   письмо автору
 
   для: DeeGreeZ   (19.06.2005 в 16:20)
 

Т.е. ID текущей записи нам известен (пусть хранится в переменной $ID)? Тогда можно воспользоваться следующими запросами
SELECT ID, mlast FROM tbl WHERE ID>$ID ORDER BY mlast LIMIT 1

и
SELECT ID, mlast FROM tbl WHERE ID<$ID ORDER BY mlast LIMIT 1

   
Rambler's Top100
вверх

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