Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос про нумерацию записей

5.9K
08 сентября 2006 года
assign
60 / / 13.12.2005
Привет, ребята!
Хотелось бы проконсультироваться вот по какому вопросу:
Есть база данных MySQL, в ней таблица, а в таблице поле:

id INT(11) AUTO_INCREMENT PRIMARY KEY;

Так вот: при удалении последней записи и добавлении новой, новая запись получает id на единицу больший чем был у старой. Т.е если до удаления и добавления нумерация была "1,2,3,4", то после -получается "1,2,3,5".
Может быть оно так и надо, но мне это не очень нравится. Как можно с этим бороться?
387
08 сентября 2006 года
Ihbif19
421 / / 28.10.2004
[QUOTE=assign]Привет, ребята!
Хотелось бы проконсультироваться вот по какому вопросу:
Есть база данных MySQL, в ней таблица, а в таблице поле:

id INT(11) AUTO_INCREMENT PRIMARY KEY;

Так вот: при удалении последней записи и добавлении новой, новая запись получает id на единицу больший чем был у старой. Т.е если до удаления и добавления нумерация была "1,2,3,4", то после -получается "1,2,3,5".
Может быть оно так и надо, но мне это не очень нравится. Как можно с этим бороться?[/QUOTE]
Попробуй сохранить номер удаляемой записи(перед её удалением) и потом добавлять с прошедшим id или новым!
Хотя наверное найдётся способ получше!
5.9K
09 сентября 2006 года
assign
60 / / 13.12.2005
[QUOTE=Ihbif17]Попробуй сохранить номер удаляемой записи(перед её удалением) и потом добавлять с прошедшим id или новым!
Хотя наверное найдётся способ получше![/QUOTE]

А я вот думаю: а нет ли в языке SQL средства для решения этой задачи?
10K
09 сентября 2006 года
KiLLMeNoT
61 / / 06.09.2006
[QUOTE=Ihbif17]Попробуй сохранить номер удаляемой записи(перед её удалением) и потом добавлять с прошедшим id или новым!
Хотя наверное найдётся способ получше![/QUOTE]
при добавлении записи с "прошлым" id таблице вообще по барабану что ты там впишешь(хоть прошлый, хоть будущий, хоть NULL) она сама вычисляет что там надо вписать(вычисляет последний а потом увеличивает его - AUTO_INCREMENT )

Assasin А вчем такая острая необходимость борьбы с этим?
387
09 сентября 2006 года
Ihbif19
421 / / 28.10.2004
[QUOTE=KiLLMeNoT]при добавлении записи с "прошлым" id таблице вообще по барабану что ты там впишешь(хоть прошлый, хоть будущий, хоть NULL) она сама вычисляет что там надо вписать(вычисляет последний а потом увеличивает его - AUTO_INCREMENT )

Assasin А вчем такая острая необходимость борьбы с этим?[/QUOTE]
Спроси у автора темы, может выводит отдельные записи на странице, и если удалит их, чтобы не переделывать скрипт, наверное
13
09 сентября 2006 года
RussianSpy
3.0K / / 04.07.2006
Очень интересно зачем с этим бороться...
5.9K
09 сентября 2006 года
assign
60 / / 13.12.2005
[QUOTE=KiLLMeNoT]Assasin А вчем такая острая необходимость борьбы с этим?[/QUOTE]

Просто надо на страницу вывести список, чтобы пользователь воспринимал его именно как СПИСОК. Например, список читателей библиотеки.
10K
09 сентября 2006 года
KiLLMeNoT
61 / / 06.09.2006
[QUOTE=assign]Просто надо на страницу вывести список, чтобы пользователь воспринимал его именно как СПИСОК. Например, список читателей библиотеки.[/QUOTE]

Тогда используй цикл
от 1 до полного количество записей

Код:
$res = mysql_query("SELECT * FROM table");

$total_num = mysql_num_rows($res);
$i=1;
for(; $i <= $total_num; $i++)
{
       $row = mysql_fetch_array($res);
       echo $i.'   ';
       echo $row['name'];
       echo '<br/>';
}
5.9K
09 сентября 2006 года
assign
60 / / 13.12.2005
[QUOTE=KiLLMeNoT]Тогда используй цикл
от 1 до полного количество записей

Код:
$res = mysql_query("SELECT * FROM table");

$total_num = mysql_num_rows($res);
$i=1;
for(; $i <= $total_num; $i++)
{
       $row = mysql_fetch_array($res);
       echo $i.'   ';
       echo $row['name'];
       echo '<br/>';
}
[/QUOTE]

Красивое решение. Только тогда теряется смысл использования поля id.
Ладно, спасибо, что уделили мне внимание. Пойду сам покумекаю.
10K
09 сентября 2006 года
KiLLMeNoT
61 / / 06.09.2006
это не "красивое решение" это стандарт
345
10 сентября 2006 года
vadim_k
312 / / 01.08.2006
Нужно просто удалит поле с авто инкрементом из таблицы, а потом создать вновь и номера будут по порядку !
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог