El hecho de que se te "descordiene" ese campo AUTOINCREMENTAL .. es justamente para manterner una de las reglas mas importante del modelo de tatos en Base de datos (valga la rebundancia) .. Le denomian a ese tema "integridad referencial" (tiene que ver con claves foraneas y normalización)
Si usas una simple tabla en tu BD aislada de otras tablas q pudieras tener podrías incluso omitir el uso de la propiedad AUTOINCREMENT en tu definición del campo ID .. En ese caso tu te controlarías si incrementas o decrementas una unidad en ese campo ...
Ahora, Si usas varias tablas relacionadas entre sí por ese ID .. o simplemente imagina que estas haciendo una acción de borrado en la que "reorganizas esos ID" y por otro lado alguien está haciendo una consulta por el ID=X .. NO va a mantener la relación y no le va a mostrar ese ID que tal vez seleccionó un instante antes de un listado de registros de esa tabla ..
Si quieres mostar un listado (un SELECT ...) de esa tabla y que te quede algo tipo:
nº dato
1 Blabla
2 Blabla
3 Blabla
4 Blabla
Deja el ID como lo tienes .. Autoincremental .. Ese ID lo usaras para tus referencias a la hora de seleccinar un registro en concreto u operaciones de Update/delete de ese registro ..
Para mostrar el ejemplo .. tan solo usa una variable contador a la hora de mostar todos los registros de tu consulta .. alto tipo:
Código PHP:
$numero=1; // iniciar el contador
where ($registro=mysql_fetch_array($resultado_consulta)){
echo $numero." --> ".$registro['dato']."<br>";
$numero++;// este es la variable contador (acomulativo ..)
}
Un saludo,