У меня возник вопрос по части работы php и собственно MySQL. Допустим у меня имеется блок статей и я удаляю статью под номером 8. Тогда получается что в БД новости идут со след. номерами 1 2 3 ...6 7 9.
Как сделать, чтобы при удалении на место удаленной записи вставала предыдущая, т.е. в данном случае чтобы 9-я новость стала 8-й вместо удаленной?
Спустя 1 час, 24 минуты, 13 секунд (23.02.2009 - 15:19) Adil написал(а):
Поле id не предназначено для нумерации!!!
Спустя 5 минут, 44 секунды (23.02.2009 - 15:25) Viking написал(а):
update таблитса set нумер_статьи=нумер_статьи-1 where нумер_статьи>8
Спустя 20 минут, 6 секунд (23.02.2009 - 15:45) P i L o T написал(а):
Цитата (Nezabivaemiy @ 23.02.2009 - 12:19) |
Поле id не предназначено для нумерации!!! |
Что?))
Цитата |
update таблитса set нумер_статьи=нумер_статьи-1 where нумер_статьи>8 |
Спасибо!)
Спустя 2 часа, 30 минут, 39 секунд (23.02.2009 - 18:15) jetistyum написал(а):
Viking
Хорошо. только в случае, если номер не есть индекс. т.к. нарушение индекса это вообще противоречит всем принципам программирования бд
Хорошо. только в случае, если номер не есть индекс. т.к. нарушение индекса это вообще противоречит всем принципам программирования бд

Спустя 1 час, 7 минут, 20 секунд (23.02.2009 - 19:23) Viking написал(а):
Цитата |
Хорошо. только в случае, если номер не есть индекс. т.к. нарушение индекса это вообще противоречит всем принципам программирования бд |
спасибо, что одобрил мой ответ, только на счет индекса я в курсе, но о нем речь не шла, а шла она о номере статьи, но вот на счет ВСЕХ принципов програмирования я не согласен, ибо индекс, как не странно, можно изменять и даже задавать, если он не дублируется, по этому я думаю, что всеже нашим, варварским принципам программирования бд это никоим образом не противоречит

Спустя 16 минут, 49 секунд (23.02.2009 - 19:39) kirik написал(а):
Цитата (Viking @ 23.02.2009 - 11:23) |
индекс, как не странно, можно изменять и даже задавать, если он не дублируется |
В случае одной таблицы - согласен. А если есть связка из 10 таблиц, то тогда придется менять id везде


Спустя 7 минут, 48 секунд (23.02.2009 - 19:47) Viking написал(а):
Цитата |
В случае одной таблицы - согласен. А если есть связка из 10 таблиц, то тогда придется менять id вездеТоже вполне варварски |
если таблиц больше одной - это уже другой вопрос, по себе могу сказать: в таких случаях Настоящие Викинги индекс не меняют!
Спустя 10 минут, 4 секунды (23.02.2009 - 19:57) Sylex написал(а):
Цитата (Viking @ 23.02.2009 - 22:47) |
в таких случаях Настоящие Викинги индекс не меняют! |


Спустя 15 минут (23.02.2009 - 20:12) P i L o T написал(а):
Так что мне делать то? У меня этот id является ключевым индексом )
Спустя 3 минуты, 53 секунды (23.02.2009 - 20:16) Viking написал(а):
Цитата |
Так что мне делать то? У меня этот id является ключевым индексом ) |
ты меня подставил!!! я думал у тебя номер статьйи - не ид!!
либо заведи отдельно номер статьи, либо смирись...
Спустя 1 минута, 11 секунд (23.02.2009 - 20:17) Viking написал(а):
ну или вычисляй номер статьи програмно в пхп...
Спустя 39 минут, 43 секунды (23.02.2009 - 20:57) jetistyum написал(а):
а тебе принципиально иметь номера статей??? можно ведь просто выводить последние .... N статей.. независимо от номера статьи..
Спустя 8 минут (23.02.2009 - 21:05) Alchemist написал(а):
Цитата (Viking @ 23.02.2009 - 18:47) |
...Настоящие Викинги индекс не меняют! |
Цитата (P i L o T @ 23.02.2009 - 19:12) |
...У меня этот id является ключевым индексом ) |
Спалился Viking

Спустя 1 час, 10 секунд (23.02.2009 - 22:05) P i L o T написал(а):
Ну новости это типа вообще для примера)))
У меня короче имеется фотогалерея и я хочу расположить превьюшки фоток в таблице 3 на 3. Порядковый номер мне нужен чтобы вовремя прописать </tr><tr>, т.е. переход на другую строку после каждой третьей фотки:
У меня короче имеется фотогалерея и я хочу расположить превьюшки фоток в таблице 3 на 3. Порядковый номер мне нужен чтобы вовремя прописать </tr><tr>, т.е. переход на другую строку после каждой третьей фотки:
PHP |
<?php |
ну а если я допустим удалю фотку со 2-м порядковым номером, то в строке будет две фоты и так далее. Поэтому я хотел бы сделать так чтобы на место удалившейся фоты встала предыдущая.
Спустя 7 минут, 53 секунды (23.02.2009 - 22:13) Viking написал(а):
ну в данном случае, я бы сюда ид не примешивал вообще, а считал бы именно в самом пхп, по порядку следования. Учитывая, что, как сказано выше, ид реально не обязан соблюдать порядок, это было бы правильнее и расширяемее.
по крайней мере сегодня. а так вообще... а кто его меня знает...
по крайней мере сегодня. а так вообще... а кто его меня знает...
Спустя 3 минуты, 7 секунд (23.02.2009 - 22:16) Viking написал(а):
вобщем ид который примари кей и автоинкремент - это только для внутреннего учета, использовать его для подсчета номера в скрипте - нехорошо! вы это перестаньте!
Спустя 4 минуты, 54 секунды (23.02.2009 - 22:21) jetistyum написал(а):
а как на счет циклов???
Спустя 14 минут, 59 секунд (23.02.2009 - 22:36) Viking написал(а):
дык именно циклами и надо делать!
Спустя 42 минуты, 47 секунд (23.02.2009 - 23:19) jetistyum написал(а):
прааавильна

Спустя 10 часов, 30 минут, 49 секунд (24.02.2009 - 09:50) sergeiss написал(а):
Честно сказать? Фигней занимаешься 
Не надо удалять никакие идентификаторы.
Потому что когда ты будешь создавать свою 3х3 таблицу, то номер id вовсе не надо использовать для этих целей. Тогда и не будет пустой головной боли.
Просто делаешь индекс ЦИКЛА вывода, и используешь его. То есть, примерно то же самое, что ты хотел делать с помощью id.
Типа такого кода:

Не надо удалять никакие идентификаторы.
Потому что когда ты будешь создавать свою 3х3 таблицу, то номер id вовсе не надо использовать для этих целей. Тогда и не будет пустой головной боли.
Просто делаешь индекс ЦИКЛА вывода, и используешь его. То есть, примерно то же самое, что ты хотел делать с помощью id.
Типа такого кода:
PHP |
$loop=1; |
Спустя 2 дня, 7 часов, 44 минуты, 14 секунд (26.02.2009 - 17:34) P i L o T написал(а):
Да уж, спасиба за помощь, тупил по жесткому))
_____________