Автор |
Сообщение |
MpaK999
участник
|
|
Подскажите как можно менять позицию строки в таблице, пример
id title text
1 - One - Text1
2 - Second - Text2
3 - Third - Text3
нужно к примеру чтобы 3ая строка стала 2ой:
id title text
1 - One - Text1
3 - Third - Text3
2 - Second - Text2
???
_________________ :: metal kick ass ::
|
|
 |
|
 |
Long
SubAdmin Теоретик
|
|
завести еще одно поле - order
_________________ Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
|
|
 |
|
 |
MpaK999
участник
|
|
c автоинкрементом и потом по нему сортировать при select'е?
_________________ :: metal kick ass ::
|
|
 |
|
 |
MpaK999
участник
|
|
но тогда
1 - One - Text1 - 1
2 - Second - Text2 - 2
3 - Third - Text3 - 3
как сменить у 2ой 2 на 3 и у 3ей строки 3 на 2???
_________________ :: metal kick ass ::
|
|
 |
|
 |
CutCopyPaste
соучастник
|
|
либо 2 таблицы связанные сделать с индексами
либо реплейсом тупо менять
_________________ Пьяный русский хакер практически непобедим!
|
|
 |
|
 |
MpaK999
участник
|
|
CutCopyPaste, плиз, а можно примерчик с REPLACE ?
_________________ :: metal kick ass ::
|
|
 |
|
 |
Long
SubAdmin Теоретик
|
|
MpaK999, зачем тебе еще один автоинкримент? тем более что больше одного тебе не дадут сделать. просто в этот поле пиши порядок сортировки. да, хочу на всякий случай заметить, что порядка расположения "строки" в таблице не существует. порядок определяется только в условии селекта.
_________________ Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
|
|
 |
|
 |
CutCopyPaste
соучастник
|
|
MpaK999,
Код: table id title text 1 - One - Text1 2 - Second - Text2 3 - Third - Text3
mysql_query("update table set text='Text3' where title = 'Second' "); mysql_query("update table set text='Text2' where title = 'Third' ");
_________________ Пьяный русский хакер практически непобедим!
|
|
 |
|
 |
amphibian
соучастник
|
|
CutCopyPaste, ты чего советуешь?  Лучше повниметельнее почитай что Long говорит. Заводишь поле куда будешь писать цифры. При выборке результат сортируешь по этому полю (order by).
_________________ Любовь открывает кредит, который неизбежно ведет к разорению...
|
|
 |
|
 |
vexoid
новый человек
|
|
хммм... чего он советует ? .)
он не советует, он просто показывает пример с переменой значений .)
_________________ lost world... lost life... lost tomorrow... only night
|
|
 |
|
 |
CutCopyPaste
соучастник
|
|
amphibian,
Цитата: | как сменить у 2ой 2 на 3 и у 3ей строки 3 на 2???
|
я и написал.…
если знаете как лучше, напишите код …
_________________ Пьяный русский хакер практически непобедим!
|
|
 |
|
 |
amphibian
соучастник
|
|
CutCopyPaste, ты поменял значения записей, т.е. нарушил целостность данных. Если с этой таблицей через ID были связаны другие таблицы то концов не найти. А требуется совсем другое. Заводится поле order_field в которое записываются значения с некоторым шагом (например 10). Получается нечто вроде:
1 - One - Text1 - 10
2 - Second - Text2 - 20
3 - Third - Text3 - 30
Теперь если нужно поменять местами при выводе строки с ID 2 и 3, даем следующий запрос:
mysql_query("update table set order_field='35' where id = '2' ");
Целостность данных при этом не страдает.
_________________ Любовь открывает кредит, который неизбежно ведет к разорению...
|
|
 |
|
 |
CutCopyPaste
соучастник
|
|
amphibian,
ясно, хорошее решение
видно я не так вопрос понял, я думал надо саму таблицу искалечить...
_________________ Пьяный русский хакер практически непобедим!
|
|
 |
|
 |
CutCopyPaste
соучастник
|
|
Acid~Jazz, понты оставь при себе
если такой умный, то зачем вообще сюда залез?
_________________ Пьяный русский хакер практически непобедим!
|
|
 |
|
 |
amphibian
соучастник
|
|
Acid~Jazz, покажите мне те книжки, которые учат думать. Не надо народ стеснять. Если нечего сказать по теме, лучше не говорить.
_________________ Любовь открывает кредит, который неизбежно ведет к разорению...
|
|
 |
|
 |
MpaK
новый человек
|
|
давайте без рвотных рефлексов...
_________________ ...cut me, hurt me, rape my life...
|
|
 |
|
 |
MpaK
новый человек
|
|
не, этот Я, тот же самый 
_________________ ...cut me, hurt me, rape my life...
|
|
 |
|
 |
MpaK999
участник
|
|
возникла проблема, если удалить к примеру средную новость, а потом перемещать, то как соблюдать порядок чисел во втором поле?
_________________ :: metal kick ass ::
|
|
 |
|
 |
amphibian
соучастник
|
|
MpaK999, чего-то я не понял. Куда, зачем и как перемещать? Тебе чего нужно? У тебя порядок чисел никуда не девается если ты его сам не изменил.
Ты еще не понял что на логическом уровне не бывает такого понятия как позиция строки в таблице?
_________________ Любовь открывает кредит, который неизбежно ведет к разорению...
|
|
 |
|
 |
MpaK999
участник
|
|
я при помощи специально добавленной колонки пытаюсь создать порядок следования новостей!
и чтобы им (порядком) можно было управлять!
вывод по ORDER BY order_num
то бишь встала проблема при удалении из середины, пример
1 - One
2 - Two
3 - Three
4 - Four
удаляем WHERE order_num=3
остается
1 - One
2 - Two
4 - Four
теперь к примеру нужно чтобы шла по порядку новость 1, 2, 4
можно сменить конечно 4 на 2 и все (UPDATE), но как узнать, что именно на 2 надо менять??? и следовательно, что 2 на 4???
_________________ :: metal kick ass ::
|
|
 |
|
 |
amphibian
соучастник
|
|
MpaK999, Цитата: | теперь к примеру нужно чтобы шла по порядку новость 1, 2, 4 |
Ты имеешь ввиду именно то, что сказал?  Смею тебя уверить что 4 больше 2 и при сортировке будет именно такой порядок. Или я чего-то не понимаю?
_________________ Любовь открывает кредит, который неизбежно ведет к разорению...
|
|
 |
|
 |
MpaK999
участник
|
|
то бишь, когда пользователь поднимит 4ую, то надо сделать так
1 - One
4 - Two
2 - Four
_________________ :: metal kick ass ::
|
|
 |
|
 |
amphibian
соучастник
|
|
В отрыве от задачи не опримально получится, но работать будет: Запоминаешь коэффициент удаленного ID'шника, делаешь выборку ID'шников и коэффициентов из той же таблицы с той же сортировкой по коэффициентам, проходясь по результату выборки запоминаешь последний элемент меньше удаленного и останавливаешься на первом, который больше. Меняешь коэффициенты местами.
_________________ Любовь открывает кредит, который неизбежно ведет к разорению...
|
|
 |
|
 |
Skeeve
соучастник
|
|
MpaK999 писал(а): | … остается 1 - One 2 - Two 4 - Four … то бишь, когда пользователь поднимит 4ую, то надо сделать так
1 - One 4 - Two 2 - Four |
Как-то незаметно в позиции 2 появилось Four, а в позиции 4 — Two.
Само оно не перескакивает, а в объяснениях не появлялось.
Надо поменять местами 2 и 4? Или еще что-то?
|
|
 |
|
 |
amphibian
соучастник
|
|
Skeeve, просто имеет ввиду одно, а говорит другое.  Если я правильно понял, нужно вот так:
1 - One
2 - Four
4 - Two
Сортируем то по числовому полю. MpaK999, Следующий раз грамотно формулируйте вопрос - сами на него и ответить сможете.
_________________ Любовь открывает кредит, который неизбежно ведет к разорению...
|
|
 |
|
 |
vexoid
новый человек
|
|
а при удалении помимо DELETE
не судьба делать UPDATE ?
update table set order_num = order_num - 1 where order_num > $del_order_num
_________________ lost world... lost life... lost tomorrow... only night
|
|
 |
|
 |
MpaK999
участник
|
|
Skeeve, да, да именно незаметно, (как осуществить?)
1 - One
4 - Two
2 - Four
В данном случае у Two и Four сменился порядок и теперь при селекте через ORDER BY order_num получим результат One, Four, Two
Вопрос так и открыт, как узнать что 4 сменить на 2, а 2 на 4е?
_________________ :: metal kick ass ::
|
|
 |
|
 |
vexoid
новый человек
|
|
Мрак ? ну накой оно надо ? ы ?
сделай так чтобы было 1, 2, 3 а не 1, 2 , 4 .) как - я чуть выше написал...
_________________ lost world... lost life... lost tomorrow... only night
|
|
 |
|
 |
amphibian
соучастник
|
|
vexoid, так это сколько же базе записей изменять придется при каждом удалении!!!
MpaK999, Т.е. по не зависящим от вас причинам изменились значения поля order_num?  Каким образом это произошло, потрудитесь объяснить.
_________________ Любовь открывает кредит, который неизбежно ведет к разорению...
|
|
 |
|
 |
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
|
|