Покинул форум
Сообщений всего: 14
Дата рег-ции: Нояб. 2008
Помог: 0 раз(а)
[+]
Добрый день. Начал работать с базами данных, всё понял, во всём разобрался (спасибо, кстати, огромное основным разделам сайта). Возник вопрос:
Я добавляю новости в через форму в БД. У каждой новости есть id (unique, auto_increment). Добавляется всё нормально. Но при удалении новости, id, естественно, остаются на своих местах. То есть, если у меня есть 10 новостей, идущих в порядке 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, и я удаляю новость под номером (id) 5, то новости начинают идти в порядке 1, 2, 3,4, дырка, 6, 7, 8, 9, 10.
Следовательно, мне надо "утрамбовать" базу данных, уменьшив id всех новостей после удалённой на 1.
Собственно, вопрос: есть ли для таких целей стандартная функция, или может быть, есть такое свойство поля БД, или же мне всё-таки придётся отказаться от auto_increment и каждый раз при добавлении новости передавать не NULL, а $id?
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Цитата:
Следовательно, мне надо "утрамбовать" базу данных, уменьшив id всех новостей после удалённой на 1.
А я говорю нет, тебе не надо. Пусть будет дырка.
----- Truly yours, Sasha.
darkhero
Отправлено: 14 Ноября, 2008 - 14:00:32
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Нояб. 2008
Помог: 0 раз(а)
[+]
valenok, с чем это связано? Просто, на будующее. Вообще, у меня при выводе новостей видно id, и мне нужно чтобы его было видно всегда. Пусть все видят, что там дырок куча?
valenok
Отправлено: 14 Ноября, 2008 - 14:04:46
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Связано это с тем что поля с автоинкрементом используются для индексирования записей, а не для чего вам там надо.
Во вторых, зачем всем видеть какой у чего йд, и в третих, да, пусть видят что куча дырок.
----- Truly yours, Sasha.
darkhero
Отправлено: 14 Ноября, 2008 - 14:06:16
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Нояб. 2008
Покинул форум
Сообщений всего: 158
Дата рег-ции: Окт. 2008
Помог: 0 раз(а)
Спорить не буду.
Сам вначале учил пхп по книжкам " всё для чайников".Иногда и себя так называю "вот чайник забыл поставить ......"
Прошу не обижатся))
valenok
Отправлено: 14 Ноября, 2008 - 21:24:40
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Как сделать чтоб записи выводились на экране без пробелов в числах. в базе всё равно останутся пробелы.
Кроме того, возможно автор имел в виду вовсе то что у него ссылки имеют вид
типа ?id=2 и хочет чтоб не было пробелов.
Для этого стоит использовать запись типа SELECT ... ORDER BY `id` LIMIT $id,1 ,
тогда несмотря на нумерацию в поле `id`
при ?id=2 будет отображаться вторая запись в базе в любом случае.
Мне кажется стоит это добавить к статье.
----- Truly yours, Sasha.
Гость
Отправлено: 24 Ноября, 2008 - 17:01:23
УДАЛЁН
Да уж обошлось без темной магии
Я думал придется для этого лопатить базу данных. Т.е. извлекать так запимсей по 30, потом смотреть на дырки, записыватьб заново их в базу
Но если база большая то ьакая "оптимизация" будет занимать длительно времени
Цитата:
Для этого стоит использовать запись типа SELECT ... ORDER BY `id` LIMIT $id,1
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.