Вопрос про нумерацию записей
Хотелось бы проконсультироваться вот по какому вопросу:
Есть база данных MySQL, в ней таблица, а в таблице поле:
id INT(11) AUTO_INCREMENT PRIMARY KEY;
Так вот: при удалении последней записи и добавлении новой, новая запись получает id на единицу больший чем был у старой. Т.е если до удаления и добавления нумерация была "1,2,3,4", то после -получается "1,2,3,5".
Может быть оно так и надо, но мне это не очень нравится. Как можно с этим бороться?
Хотелось бы проконсультироваться вот по какому вопросу:
Есть база данных MySQL, в ней таблица, а в таблице поле:
id INT(11) AUTO_INCREMENT PRIMARY KEY;
Так вот: при удалении последней записи и добавлении новой, новая запись получает id на единицу больший чем был у старой. Т.е если до удаления и добавления нумерация была "1,2,3,4", то после -получается "1,2,3,5".
Может быть оно так и надо, но мне это не очень нравится. Как можно с этим бороться?[/QUOTE]
Попробуй сохранить номер удаляемой записи(перед её удалением) и потом добавлять с прошедшим id или новым!
Хотя наверное найдётся способ получше!
Хотя наверное найдётся способ получше![/QUOTE]
А я вот думаю: а нет ли в языке SQL средства для решения этой задачи?
Хотя наверное найдётся способ получше![/QUOTE]
при добавлении записи с "прошлым" id таблице вообще по барабану что ты там впишешь(хоть прошлый, хоть будущий, хоть NULL) она сама вычисляет что там надо вписать(вычисляет последний а потом увеличивает его - AUTO_INCREMENT )
Assasin А вчем такая острая необходимость борьбы с этим?
Assasin А вчем такая острая необходимость борьбы с этим?[/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/>';
}
$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/>';
}
от 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/>';
}
$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/>';
}
Красивое решение. Только тогда теряется смысл использования поля id.
Ладно, спасибо, что уделили мне внимание. Пойду сам покумекаю.
это не "красивое решение" это стандарт
Нужно просто удалит поле с авто инкрементом из таблицы, а потом создать вновь и номера будут по порядку !