Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MySQL запрос, Необходимо упорядочить записи. 
:(
    Опции темы
Secandr
Дата 16.9.2003, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 6
Всего: 39



Есть таблица:
+++++++++++++++
+id+pos+text+tema+
id - идентификатор.
pos - позиция.
text - информация.
tema - номер темы.

Дело в том, что после работы с таблицей у меня в столбце pos получаются следующие значения: 1,3,10,15,... для текущей темы

Я хочу, чтоб так было 1,2,3,4,... для текущей темы

Для этого я пишу следующее:
Код
   $q1="SELECT id,pos FROM `data` WHERE tema='$tema' and ans='1' ORDER BY pos";
   $r1=mysql_query($q1);
   $n=0;
   while (list($nid,$p)=mysql_fetch_array($r1))
       {
       $n++;
       if ($p!=$n)
           {
           $q2="UPDATE `data` SET pos='$n' WHERE id='$nid'";
           mysql_query($q2);
           }
       }

По меньшей мере это не красиво, если у меня в теме 500 записей, то это 501 запрос confused.gif

Подскажите, как такую сортировку можно провести средствами SQL.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
zckernel
Дата 16.9.2003, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 25.8.2003

Репутация: нет
Всего: нет



А нет возможности на этапе заполнения таблицы сразу генерить правильные значения для поля pos?
PM MAIL   Вверх
Secandr
Дата 16.9.2003, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 6
Всего: 39



Всё генерируется правильно.
Просто записи удаляются, создаются заново.
А для того чтобы поменять позиции двух ближайших значений я сначала их упорядычиваю, а затем изменяю.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Master
Дата 16.9.2003, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: нет
Всего: 10



Да не нужно это... боже ж мой... тут один хотел такую же тучу с форумом провести biggrin.gif
вот http://forum.vingrad.ru/index.php?act=ST&f=6&t=10979


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
Secandr
Дата 16.9.2003, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 6
Всего: 39



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

P.S. Читал я эту тему раньше wink.gif Просто в моём случае значение pos меняется...

Это сообщение отредактировал(а) Secandr - 16.9.2003, 16:05


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0638 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.