Mauvais effacement...

Répondre
zak888
le 20/04/2004 à 08:42
zak888
Bonjour,
Je suis en train d'installer un système de gestion de ma rubrique "Tucs et astuces" s'apparentant au systèm de news. Malheureusment j'ai un problème :
Lorsque je crée une nouvelle astuce, elle s'insère dans la bdd et je peux y accéder vi mon site (l'afficher). Jusque là tout va bien. Mais lorsque j'en vire une et que j'en rajoute une ensuite il saute un "id" ; je m'explique : voici ma table "tips" :
un id(int) auto_increment
un astuce(text)
et un titre(text)
Si j'ai 3 astuces, j'aurais id=1, id=2 et id=3.
Si je vire id=3 et que je rajoute une astuce, j'aurais en tout : id=1, id=2 et directement id=4 !!

Comment régler ce problème ?
Merci.
Visistez www.micro-bidouilles.fr.st !!!
moogli
le 20/04/2004 à 09:40
moogli
Slt
le fait que ke mysql 'saute' un id est normale puisqu'il est définit avec 1 autoincrement il sera toujours different (il ne peut y avoir 2 id identique).
L'id manquant est celui du tuples supprimer!
Il en faut peu pour être heureux !!!!!
zak888
le 20/04/2004 à 09:52
zak888
Oui mais alors comment corriger le problème ?
Visistez www.micro-bidouilles.fr.st !!!
moogli
le 20/04/2004 à 10:03
moogli
De plus c pas important puisque l'id ne sert a reperer ton tuple dans la base et que lorsque tu fait une modif (ou suppression) sur un tuple tu recupere l'id avant.
Il en faut peu pour être heureux !!!!!
zak888
le 20/04/2004 à 10:18
zak888
Oui mais pour les numéroter j'utilise id...
Visistez www.micro-bidouilles.fr.st !!!
zebden
le 20/04/2004 à 10:28
zebden
au increment ca veut dire id unique , meme si ton supprime le "compteur" lui reste a la meme position.
Tu peux utiliser un compteur dans ta boucle par ex $i=1; incrementé à chaque astuce , si elles sont dans l'ordre tu aura les astuces numérotées. ^_^
zebdinou pour les intimes / Blog : http://www.zebden.fr
zak888
le 20/04/2004 à 10:41
zak888
Ok je vais faire ca
Merci ^^
Visistez www.micro-bidouilles.fr.st !!!
Sedilbur
le 20/04/2004 à 20:19
Sedilbur
Personellement, j'utilise un SELECT max(id)
puis:
$next_id= $row['max(id)'] + 1;

insert INTO ('id', 'value', 'etc') VALUES ($next_id, '','')

Et celà fonctionne correctement pour ma part...
Il se peut que certains déaprouvent cette méthode mébon il me semble que c'est le seul moyen pour avoir une suite 'suivie'...
zebden
le 20/04/2004 à 20:49
zebden
Oui car tu fais le boulot de Mysql.
Si tu as 8 id (1,2,3,4,5,6,7,8) tu supprime le 3 , Max(id) sera tout de meme egale a 8

On aurait donc (1,2,4,5,6,7,8,9) à l'enregistrement suivant. Ce que fait l'auto increment...
zebdinou pour les intimes / Blog : http://www.zebden.fr
Répondre
LoadingChargement en cours