Pourquoi ne pas modifier un identifiant !
Chose vrai uniquement si cette 'id' ( référence unique ) est appelé ou lié à d'autre table voir base de donnée.
Hors ce script "peut" s’avérer utile pour une table n'utilisant l'id que pour l'auto incrémentation et non l'identification de la ligne, en outre par un exemple concret une table de type "news" avec un champ id en clé primaire auto_increment n'est pas forcement lié de quelque manière que ce soit à autre chose.
Donc lors de la possible suppression de multiple ligne, un "nettoyage" peut satisfaire, voir faire la requête de l'administrateur.
En outre ne pas laisser de manière volontaire ( dans la limite du possible ) des lignes "vides" peut être utile.
EDIT : J'utilise ce système sur mon site web, aussi bien pour les comptes utilisateur, que pour les actualité et même le contenu de ma php doc.
Ne pas oublier que modifier l'id n'est pas dangereux dans le cadre ou cette dite id n'est utiliser nulle part ailleurs. ( En ce qui me concerne je n'utilise jamais un id comme identifiant "unique" mais comme clé d'identification abrégé et c'est là ou son statu unique est réutilisable sans échec quelque soit sa valeur ).
DOUBLE EDIT :
A savoir que, en reprenant l'exemple donnée dans votre tutoriel, le dev as juste une ligne à rajouter :
/* votre connexion sql ... */
$mysqli= new mysqli("host", "user", "pw", "db");
$key = 1;
$q = $mysqli->query("SELECT id FROM matable");
foreach($q as $r) { // Utilisation d'un iterator intégrer depuis php 5.4
if($r["id"] != $key) {
$mysqli->query("UPDATE matable SET id='$key' WHERE id='{$r["id"]}'");
// Ajouter les dépendance à la file .... EDIT ( ne pas oublier de faire une boucle si il y a plusieurs entrée !!! )
$qq = $mysqli->query("SELECT * FROM dependance WHERE id_dep='{$r["id"]}'");
foreach($qq as $rr) {
$mysqli->query("UPDATE dependance SET id_dep='$key' WHERE id_dep='{$r["id"]}'");
}
}
$key++;
}
$mysqli->query("ALTER TABLE matable AUTO_INCREMENT=$key");
$mysqli->close();
Avec sa ... même un forum ne perd pas sa cohérence, ces donnée et tous ce qui y est lié, il faut juste y pensé.
A manier tout de même avec précaution, prévoir un backup de votre base de donnée si vous n'êtes pas sur de ce que vous faite !