![]() |
|
Модераторы: skyboy |
![]()
|
|
| Spectre |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 18.1.2006 Где: Беларусь, г. Минс к Репутация: нет Всего: нет |
Есть таблица id, title, body, num
num - это порядковый номер в котором выводить на экран запись. Мне надо сделать так, что бы при введении новой записи в бд у меня они переставлялись. То есть при наличии 7 записей я ввожу 8-ю и указываю что бы ее порядковый номер был 3, а все остальные записи в БД, включая текущую третью и выше, обновляли порядковый номер на num + 1. Вот пока так сделано:
$num - это получаемый номер записи из формы добавления записи. Тут несколько лишних записей которые можно изменить, но должно работать помоему. А не работает. Он присваивает новой записи тот порядковый номер который я указываю, а остальные записи получают последний, тот который должен был быть у этой если бы я не поменял. |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 2 Всего: 71 |
Spectre, что-то я не понял.. а в чём проблема то.. тебе нужно именно чтобы в `num` всё переименовать или чтоб выводить в порядку?
Если только выводить, то достаточно отсортировать по полю `num` и всё, ну плюс добавить какое-нибудь дополнительное поле для сортировки, например `data` (ну чтоб сортировать если будет несколько одинаковых `num`) а вообще-то это наверное в раздел PHP вот код, что не понятно, спрашивай
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Spectre |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 18.1.2006 Где: Беларусь, г. Минс к Репутация: нет Всего: нет |
Отсортировать по num не проблема... num у меня всегда должен быть уникальным. Но при этом если я при введении нового вопроса указываю уже существующий num, то он должен выдать этому вопросу этот номер, а все вопросы последующие, и тот который заменили должны сдвинуться на единицу вперед. Был 2 стал 3 и т.д.
Как составить такой запрос. |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 2 Всего: 71 |
как сделать всё это одним запросом пока не представляю... что-то не выходит... а на PHP я тебе написал, вроде всё работает как ты хочешь
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
поясни, пожалуйста, id - это уникальное поле? Или ты по нему определяешь, что куда вставлять? Набросай короткий пример лучше - что было и как стало....
|
|||
|
||||
| Spectre |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 18.1.2006 Где: Беларусь, г. Минс к Репутация: нет Всего: нет |
id у меня уникален и я не по нему определяю...
Пример такой У меня есть таблицв. id / body / num id - уникален и имеет свойство auto_incriment или как там. Второй ряд содержит то что надо выводить на экран. А третий - порядок в котором выводить. Там числовое значение. Забиваю базу через форму на страничке сайта. При этом у меня автоматически высчитывается значение поля num что бы не повторялось. Допустим забил в базу 5 значений... получилось у меня num от 1 до 5. Теперь я забиваю значение шестое.. но мне надо, что бы оно было не шестым по порядку а например вторым... В форме я меняю автоматом поставленную 6-ку на 2. Нажимаю "Добавить" и мне надо что бы он сместил во всех записях от 2 до 5 значение поля num на 1. А потом вставил 6-ю запись со значением num = 2... А поле с id = 2, то есть второе забитое, у которого раньше и num = 2 обновилось. Там num теперь 3. так же и с остальными до конца таблицы. Было до id / body / num 1 / а / 1 2 / б / 2 3 / в / 3 Ввожу новую строку: 4(автоматом, я не могу изменить) / г/ 2(сам поменял. Предлагало 4) Получается: 1 / а / 1 2 / б / 3 3 / в / 4 4 / г / 2 Это сообщение отредактировал(а) Spectre - 23.7.2006, 09:42 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |