Incrementation dans mysql

Incrementation dans mysql - PHP - Programmation

Marsh Posté le 08-08-2006 à 11:37:15    

Slt à tous
j'ai un site de photos en php/mysql qui tourne depuis fort longtemps correctement. J'ai un petit souci sur mes valeurs du genre photo-id qui sont des index avec autoincrément. Donc chaque fois que j'ajoute une photo l'ID est incrémenté de 1. Sauf que récemment ça merde je supprime par exemple la photo 17 et que j'en upload une nouvelle elle ne prend pas le numéro libre (17) mais le dernier numéro genre 55 ce qui fait que mes index sont complétement incohérents ; et donc le 17 n'est pas attribué. Au bout d'un moment c'est folklo si l'on supprime 15 photos 15 numéros d'index disparaissent !
 
Comment peut -on réinitialiser la chose ?  :(  google est mon mais amais ! mais je ne trouve pas ! :pfff:
 
j'ai ça mais ca marche pas mieux !http://dev.mysql.com/doc/refman/5. [...] ement.htmlux

Message cité 2 fois
Message édité par Gandalf la croute le 08-08-2006 à 11:42:47
Reply

Marsh Posté le 08-08-2006 à 11:37:15   

Reply

Marsh Posté le 08-08-2006 à 11:42:51    

Gandalf la croute a écrit :

Slt à tous
j'ai un site de photos en php/mysql qui tourne depuis fort longtemps correctement. J'ai un petit souci sur mes valeurs du genre photo-id qui sont des index avec autoincrément. Donc chaque fois que j'ajoute une photo l'ID est incrémenté de 1. Sauf que récemment ça merde je supprime par exemple la photo 17 et que j'en upload une nouvelle elle ne prend pas le numéro libre (17) mais le dernier numéro genre 55 ce qui fait que mes index sont complétement incohérents ; et donc le 17 n'est pas attribué. Au bout d'un moment c'est folklo si l'on supprime 15 photos 15 numéros d'index disparaissent !
 
Comment peut -on réinitialiser la chose ?  :(  google est mon mais amais ! mais je ne trouve pas ! :pfff:


 
C'est le comportement normale des index auto-incrementees, donc rien d'anormal a ce qui t'arrive :-)
Ce n'est donc pas MySQL mais plus ton code php qui est a blamer ...

Reply

Marsh Posté le 08-08-2006 à 11:43:23    

Woutcha a écrit :

C'est le comportement normale des index auto-incrementees, donc rien d'anormal a ce qui t'arrive :-)
Ce n'est donc pas MySQL mais plus ton code php qui est a blamer ...


Est ce à dire ?
recupérer la valeur du dernier item LAST_INSERT_ID() de la table avant dans un incrementer un autre ?


Message édité par Gandalf la croute le 08-08-2006 à 11:49:44
Reply

Marsh Posté le 08-08-2006 à 11:57:19    

Non ce qu'on veux dire c'est que ce n'est pas normal que tout foire dés que l'on supprime un id. Il dois y avoir une couille dans le potage dans ton php (désolé) pour que ça fasse foiré tout..

Reply

Marsh Posté le 08-08-2006 à 16:46:35    

Moi je vois aucun soucis que ce soit dans le code PHP ou dans MySQL.
Tu es en auto-increment, il est donc normal que lorsque tu supprimes un id, il ne le remplace pas mais incrémente le dernier ID inséré.
Si tu veux pouvoir remplacer un ID supprimé, il faudra virer l'auto increment de ton champ dans ta base et peut-être faire un petit traitement qui te permettra de recueillir le premier id absent, pour pouvoir le rajouter.

Reply

Marsh Posté le 08-08-2006 à 16:58:37    

DarkHope a écrit :

Moi je vois aucun soucis que ce soit dans le code PHP ou dans MySQL.
Tu es en auto-increment, il est donc normal que lorsque tu supprimes un id, il ne le remplace pas mais incrémente le dernier ID inséré.
Si tu veux pouvoir remplacer un ID supprimé, il faudra virer l'auto increment de ton champ dans ta base et peut-être faire un petit traitement qui te permettra de recueillir le premier id absent, pour pouvoir le rajouter.


 
Ta forcement un soucis au niveau php.. Quand tu fais un code qui liste ou récupère les enregistrements d'une table que tu est tous les id à la suite ou qu'il en manque 50 au milieu ça fonctionne d'ordinaire, ça si ça lui fait tout beuguer c'est qu'il y à un soucis quelque part non?

Reply

Marsh Posté le 08-08-2006 à 17:10:14    

Il a pas dit que ça faisait bugguer, juste que s'il supprime 10 photos, il va passer du numéro 5, 6 ,7  au 18, 19 ,20 et il voudrait que les nouvelles prennent la place de ces 10 absentes.


Message édité par DarkHope le 08-08-2006 à 17:12:13
Reply

Marsh Posté le 08-08-2006 à 17:12:04    

la vrai question est pourquoi as-tu besoin d'avoir des identifiants "qui se suivent"?

Reply

Marsh Posté le 08-08-2006 à 17:12:07    

Gandalf la croute a écrit :

Slt à tous
ce qui fait que mes index sont complétement incohérents ; et donc le 17 n'est pas attribué. Au bout d'un moment c'est folklo si l'on supprime 15 photos 15 numéros d'index disparaissent !
 


 
Pour moi ça lui fait tout beuguer  :D  
Sinon bah si c'est juste pour combler les trous effectivement ta solution est bonne  
 

Reply

Marsh Posté le 08-08-2006 à 17:15:24    

Citation :

ce qui fait que mes index sont complétement incohérents


Ca ne veut pas forcément dire que c'est un bug.

Citation :

et donc le 17 n'est pas attribué


C'est normal, puisqu'il est en auto-increment

Citation :

Au bout d'un moment c'est folklo si l'on supprime 15 photos 15 numéros d'index disparaissent !


 
Toujours normal, puisqu'il est en auto increment :p
 
C'est juste qu'il voudrait combler les id absents, pour avoir une liste qui se suit.

Reply

Marsh Posté le 08-08-2006 à 17:15:24   

Reply

Marsh Posté le 08-08-2006 à 17:18:43    

Bah il fait un champ "Display Id" [:spamafote]


---------------
Bitcoin, Magical Thinking, and Political Ideology
Reply

Marsh Posté le 08-08-2006 à 17:20:14    

Autant virer l'auto increment je pense.

Reply

Marsh Posté le 08-08-2006 à 17:25:50    

bah c'est subjectif, perso, j'aime bien toujours avoir un id auto_increment, meme si ca sert a rien.


---------------
Bitcoin, Magical Thinking, and Political Ideology
Reply

Marsh Posté le 08-08-2006 à 17:34:01    

farib a écrit :

bah c'est subjectif, perso, j'aime bien toujours avoir un id auto_increment, meme si ca sert a rien.


 
+1

Reply

Marsh Posté le 08-08-2006 à 17:57:57    

ouiai bah je voulais juste avoir un truc propre, vu que je repasse tout le site en revue !  
Bref je ne bug pas j'ai juste un complexe psychotique avoir mes id s'incrémenter à l'arrache ! merci de vos réponses !

Reply

Marsh Posté le 08-08-2006 à 18:00:50    

Mdr ah ok .. bah dans ce cas fait un script qui te remet tous tes id à la suite si ça peux t'aider à mieux dormir cette nuit :)

Reply

Marsh Posté le 08-08-2006 à 18:05:30    

micfont999 a écrit :

Mdr ah ok .. bah dans ce cas fait un script qui te remet tous tes id à la suite si ça peux t'aider à mieux dormir cette nuit :)


 :D non la nuit je code, le jour je dors au taf en bon informaticien  :whistle:  
Merci  !

Reply

Marsh Posté le 08-08-2006 à 18:13:31    

Gandalf la croute a écrit :

j'ai juste un complexe psychotique avoir mes id s'incrémenter à l'arrache


 
Heu, pour memoire, l'auto-incremente te permet juste de generer de facon artificielle une clef primaire. C'est a dire un moyen d'identifier  
chaque enregistrement de maniere unique dans ta table.
 
En revanche ca ne permet pas d'effectuer un ordonnancement ou d'avoir une plage d'id continue car ce n'est pas fait pour ca!
 
 
 
 

Reply

Marsh Posté le 09-08-2006 à 08:22:20    

Woutcha, je le pensais jusqu'a maintenant car au boulot sous ISQL c'est le cas pas sous Mysql ! merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed