Пожалуйста, если возможно, укажите информацию: какую базу данных вы используете, а также DDL (аннотация столбца или всей таблицы).
Похоже, что вы создали много строк после идентификатора 18 и после него выудалите их, автоинкремент в этом случае возьмет следующий, не использованный в прошлом id, даже если строка была удалена.И это может произойти снова в будущем, потому что идентификатор 18, например, также может быть удален.Если вам просто нужно правильно упорядочить последовательность идентификаторов, создайте их на лету в PHP путем вывода (но в этом случае идентификатор может отличаться для одного и того же элемента при разных запросах к серверу).