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

Форум MySQL

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

 

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

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

тема: Сортировка данных на странице с помощью SQL
 
 автор: maxnag   (06.11.2006 в 12:51)   письмо автору
 
 

Имеется 60 записей в таблице. Вывод в брай\узер по 20 позиций (1-20; 21-40; 41-60)
Необходимо сортировать только те записи которые находятся на выбранной странице, т.е. если мы находимся на 2-й странице, это записи с 21-40 при Order By id ASC LIMIT 20, 20, когда происходит обратная сортировка, т.е. Order By id DESC LIMIT 20, 20 , то выводятся записи в кол-ве 20, но с номерам не 40-21, а совсем другие. Нельзя ли запросами добится сначала выбора необходимого кол-ва записей, а потом его сортировки. У кого есть какие мнения?

   
 
 автор: elenaki   (06.11.2006 в 13:47)   письмо автору
 
   для: maxnag   (06.11.2006 в 12:51)
 

> но с номерам не 40-21, а совсем другие.

а какие?

   
 
 автор: maxnag   (06.11.2006 в 14:23)   письмо автору
 
   для: elenaki   (06.11.2006 в 13:47)
 

сначало, как я понял идет сортировка всех выбранных данных, а потом лимит. вот представте таблицу из большого кол-ва записей. и когда вы находитесь даже на первой странице, то вам выдаст при ASC с 1 по N, а потом при DESC с N-1, а надо при ASC с 1-20 (20 кол-во записей на странице) и при DESC c 20 по 1.

   
 
 автор: elenaki   (06.11.2006 в 14:29)   письмо автору
 
   для: maxnag   (06.11.2006 в 14:23)
 

а вы представьте, что записи в базе НЕ нумерованы. id дает только уникальность и порядок
следования (больше-меньше), а не нумерацию. нумерацию делают отдельно в цикле при выводе.

   
 
 автор: maxnag   (06.11.2006 в 14:40)   письмо автору
 
   для: elenaki   (06.11.2006 в 14:29)
 

Это я понял, что ай-ди не панацея. Я хочу знать, есть ли возможность сначало выбрать некую часть записей, а потом эти записи сортировать.??? может как-то делать временную таблицу, представление, ну не знаю что может мускул. Кстати версия 4.1.21-community-nt

   
 
 автор: cheops   (06.11.2006 в 15:10)   письмо автору
 
   для: maxnag   (06.11.2006 в 14:40)
 

Можно попробовать через вложенный запрос добиться такого поведения
SELECT * FROM (SELECT * FROM tbl LIMIT 20 , 20) AS tbl1
ORDER BY id

Но вы действительно зря выводите внутренние id-номера на страницу - лучше их генерировать искусственно.

   
 
 автор: maxnag   (06.11.2006 в 15:54)   письмо автору
 
   для: cheops   (06.11.2006 в 15:10)
 

ID я просто написал, что есть самое понятное, вместо ID может быть все что угодно, фамилии, адреса и тд.
Спасибо за ответ, все работает. Все оказалось очень просто. Спасибо за расширение моего кругозора.

   
Rambler's Top100
вверх

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