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

  • Автор темы Автор темы jrip
  • Дата начала Дата начала

jrip

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

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

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

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

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

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

если опыта мало - то не тебе и судить о том делать это или нет.
 
Фанат
Ну на счёт того, что делать это не стоит я просто уже знаю :)

На счёт id, там именно нужно поменять местами. Для сортировки у меня есть своё поле (num), вот там нужно передвигать запись на одну вниз или вверх. Но проблема, в том, что передвигать её нужно только в своём разделе. Пока вот ума не преложу, как лучше это сделать. Была идея сделать поле autoincrement. А при сдвиге, просто менять значения местами, но тогда получается тот же id....
 
Ты сам-то понимаешь, что ты пишешь?
Я - нет.
На счёт id, там именно нужно поменять местами
. Для сортировки у меня есть своё поле (num)
так id или num ты собрался менять местами?
Но проблема, в том, что передвигать её нужно только в своём разделе
что такое раздел в твоем понимании, мы должны догадаться самостоятельно?
Была идея сделать поле autoincrement.
второе поле автоинкремент сделать невозможно.
при сдвиге, просто менять
так при сдвиге или при обмене?
 
Фанат
второе поле автоинкремент сделать невозможно.
Из-за этого и получилось, что 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, который должен быть?
 
Из-за этого и получилось, что num и id пришлось объеденить...
получилось это от невежества.

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