Поменять значения местами.

jrip

Новичок
Поменять значения местами.

Имеется таблица:
id - уникальное, autoincrement.
name
text
и т.д.

Имеются две записи, у одной id=5 у другой id=10. Нужно сделать наоборот. Как лучше это сделать?
 

jrip

Новичок
вопрос не о том делать это или нет, вопрос как... а сделать нужно, так уж получилось... сейчас у меня сделано через три запроса, сам понимаю, что это жутко криво, нет ли способа покрасивее?
 

Кром

Новичок
Еще раз повторяю. Ответ не в том, как это сделать, а в том, что делать этого тебе не надо. Так уж получилось.

Зачем ты это вообще делаешь?
 

jrip

Новичок
Да опыта маловато пока ещё, вот и не учёл одну вещь... Теперь чтобы сделать по другому, нужно чень много всего переписывать...

Тогда вот такой вопрос, если можно... Если разберусь с ним, тогда возможна эта замена и не понадобится.

Имеется несколько разделов, в каждом выводится своя таблица(таблица в смыле <table>): имя описание и т. д. Нужно сделать так, чтобы при клике, на ссылку, например, строка этой таблицы перемещалась выше или ниже. Т.е. чтобы можно было задавать свой порядок вывода строк.
Вся информация хранится в одной таблице (В смысле Mysql).
Как лучше такое реализовать?
 

Фанат

oncle terrible
Команда форума
чтобы можно было задавать свой порядок вывода строк, нужно завести отдельное поле для сортировки.
поле id для этого не предназначено.
три запроса делать не надо. тебе точно надо ПОМЕНЯТЬ местами, а не ПЕРЕДВИНУТЬ одну из записей?

если опыта мало - то не тебе и судить о том делать это или нет.
 

jrip

Новичок
Фанат
Ну на счёт того, что делать это не стоит я просто уже знаю :)

На счёт id, там именно нужно поменять местами. Для сортировки у меня есть своё поле (num), вот там нужно передвигать запись на одну вниз или вверх. Но проблема, в том, что передвигать её нужно только в своём разделе. Пока вот ума не преложу, как лучше это сделать. Была идея сделать поле autoincrement. А при сдвиге, просто менять значения местами, но тогда получается тот же id....
 

Фанат

oncle terrible
Команда форума
Ты сам-то понимаешь, что ты пишешь?
Я - нет.
На счёт id, там именно нужно поменять местами
. Для сортировки у меня есть своё поле (num)
так id или num ты собрался менять местами?
Но проблема, в том, что передвигать её нужно только в своём разделе
что такое раздел в твоем понимании, мы должны догадаться самостоятельно?
Была идея сделать поле autoincrement.
второе поле автоинкремент сделать невозможно.
при сдвиге, просто менять
так при сдвиге или при обмене?
 

jrip

Новичок
Фанат
второе поле автоинкремент сделать невозможно.
Из-за этого и получилось, что num и id пришлось объеденить...

Имеется таблица(к примеру):
id, razdel, name, text
Мне нужно выводить инфу по полю razdel.

Информация выводится в виде таблицы. Должна быть заданная мной сортировка и возможность её изменения путём сдвига поля вверх или вниз.

Как это лучше сделать, я не знаю. Мысли есть. т.е. есть поле num. В нём каждой записи даю номер. т.е. получается:
id razdel name text num
1 system name1 text1 1
2 main name2 text2 2
3 system name3 text3 3
4 main name4 text4 4
В запросе сортирую по num.

Теперь при сдвиге name4 выше name2 нужно поменять местами num=2 и num=4.

Но здесь возникает ряд проблем. Если сдвигать наверх, то всё понятно, просто сохраняю num, в переменной и вывожу при следующем прохоже цикла. А как сделать сдвиг вниз?
И как получить, при добавлении записи num, который должен быть?
 

Фанат

oncle terrible
Команда форума
Из-за этого и получилось, что num и id пришлось объеденить...
получилось это от невежества.

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