auto increment = auto casse tête

Résolu
phil2a
Messages postés
95
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
22 décembre 2012
- 16 juil. 2008 à 16:38
phil2a
Messages postés
95
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
22 décembre 2012
- 23 juil. 2008 à 08:26
Salut

Voila mon pb.

J'ai créé une table avec une clé auto-increment.

Lors de l'ajout d'un enregistrement, cette clé s'incrémente de 10 en 10 alors que je voudrais qu'elle s'incrémente de 1 en 1.

J'ai recréé la table. Pareil. Elle commence à 2 puis 12 puis 22 puis 32 etc...

J'ai fait comme indiqué dans la FAQ : alter table latable auto increment =0

Pareil.

Comment, c'est le cas de la dire, mettre au pas cette clé rebelle ?

J'espère que vous avez la réponse, moi j'ai la question.

Merci d'vot' bon coeur.

15 réponses

phil2a
Messages postés
95
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
22 décembre 2012

23 juil. 2008 à 08:26
bon ben voilà c'est une sécurité pour le serveur, on peut rien y faire
3
cs_didine6
Messages postés
81
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
7 août 2009

16 juil. 2008 à 17:30
Quel est le type de ta clé qui s'auto incrémente ? number ?
Peux-tu envoyer un morceau de code lors de ton INSERT et de ton auto incrémentation ?

Didine
0
phil2a
Messages postés
95
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
22 décembre 2012

17 juil. 2008 à 08:36
Salut,
La clé est de type smallint.
Voici le code :
   $sql="insert into ".$table."(pseudo,message) values ('$pseudo','$message')";
   @mysql_db_query($dbname,$sql,$id_link);
0
phil2a
Messages postés
95
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
22 décembre 2012

17 juil. 2008 à 08:36
Salut,
La clé est de type smallint.
Voici le code :
   $sql="insert into ".$table."(pseudo,message) values ('$pseudo','$message')";
   @mysql_db_query($dbname,$sql,$id_link);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_didine6
Messages postés
81
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
7 août 2009

17 juil. 2008 à 08:41
Et ta clé correspond à quel champ ?
Essaie cette requête : $sql="insert into ".$table."(clé,pseudo,message) values ('','$pseudo','$message')";
De cette manière, cela devrait fonctionner.
Si ça ne fonctinone pas, change ta clé en int plutôt qu'en smallint (je ne te dirais pas pkoi, je ne suis pas assez pro pour ça...)
Mais j'ai déjà eu le même pb que toi, et ma clé est de type int.
Tiens moi au courant.
@++

Didine
0
phil2a
Messages postés
95
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
22 décembre 2012

17 juil. 2008 à 11:29
ben j'hésite à faire ça. Incrémenter une valeur vide dans un champ qui doit s'incrémenter tout seul c'est un peu artisanal, je risque de recevoir des messages de réprobation d'aficionados de mysql
0
cs_didine6
Messages postés
81
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
7 août 2009

17 juil. 2008 à 13:28
euh non non, il s'incrémente tout seul de cette façon.

Didine
0
phil2a
Messages postés
95
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
22 décembre 2012

17 juil. 2008 à 14:02
j'ai essayé mais c'est pareil
0
cs_didine6
Messages postés
81
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
7 août 2009

17 juil. 2008 à 14:18
Est ce que tu peux faire un export de ta table avec la structure et faire une copie ici stp ?

Didine
0
dsyann
Messages postés
17
Date d'inscription
jeudi 30 août 2007
Statut
Membre
Dernière intervention
19 août 2009

17 juil. 2008 à 17:41
Salut
Juste quelques ptis renseignements:
Quelle est la structure de ta base de donnees?
Mais aussi quelle version de PHP utilises toi?
pkoi?

car en effet si tu utilises une version superieure a la version 4 eh beuh il n'est plus trop cool d'utiliser mysql_db_query.
On utilise plutot mysql_select_db.

Pour la requete je ne connais pas ta structure mais si elle est du genre id (autoinc) pseudo et message
ta requete est juste car en effet on peut inserer les tupples de 3 manieres avec autoinc:
ta methode 
 -     $sql="insert into ".$table."(pseudo,message) values ('$pseudo','$message')";
sans preciser la clé.

-      soit en remplacant a la place de la valeur de la cle NULL: ...values(NULL, '$pseudo','$msg')

-      soit la mm chose mais en y indiquant rien ...values (, '$pseudo','$msg')

le tout n'est que question encore une fois de version de php.
Sous la 4 et la 5 j'ai utilise NULL et ca marche.

maintenant as tu verifier la valeur par defaut de ton autoinc?
0
phil2a
Messages postés
95
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
22 décembre 2012

18 juil. 2008 à 10:17
 la valeur par défaut de la variable increment du serveur est  10 !


|
|

----

|
0
dsyann
Messages postés
17
Date d'inscription
jeudi 30 août 2007
Statut
Membre
Dernière intervention
19 août 2009

18 juil. 2008 à 11:43
pkoi tu ne le remettrais pas a zero coe dab histoire de voir
0
phil2a
Messages postés
95
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
22 décembre 2012

18 juil. 2008 à 11:44
comment fait-on ?
0
dsyann
Messages postés
17
Date d'inscription
jeudi 30 août 2007
Statut
Membre
Dernière intervention
19 août 2009

18 juil. 2008 à 14:38
dac je pense que tu peux essayer  d'executer cette requete:
SET @@auto_increment_increment=1;
dans la fenetre mysql.
Donne moi ce que ca donneras
0
phil2a
Messages postés
95
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
22 décembre 2012

21 juil. 2008 à 11:24
ok j'ai essayé sans succès. Il s'agit du serveur de l'hebergeur et
ça m'étonnerait que j'ai droit à le faire.
Il ne me reste plus qu'à le contacter. A moins qu'il soit possible
d'imposer une valeur en php le temps du script ?
0