Смотрите есть база данных, допустим в ней одна таблица, в которой один столбец. Столбец id, ну и в нем такие значения: 1,2,3,6,7,9,12.
Как (скажите алгоритм) при помощи SQL и PHP, можно сделать такие значения: 1,2,3,4,5,6,7, то есть заново проиндексировать?
Если id - инкрементное поле, то вариант такой:
CREATE TEMPORARY TABLE `tab_temp` SELECT * FROM `tab`;
TRUNCATE TABLE `tab`;
INSERT `tab` (`field1`, `field2`) SELECT `field1`, `field2` FROM `tab_temp`;
Мне кажется, что придется всю таблицу считывать в массив ($arr[$key]), где $key и есть ваш id. Потом этот массив надо вручную отсортировать. Я написал простой пример тут.
Сразу предупреждаю, что идея не претендует на 100% правильность, если найдется более простое, быстрое и умное решение, буду очень рад)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей