Erreur MySql: Duplicate entry '11' for key 1

Nouveau WRInaute
Bonjour tout le monde,
j'ai un problème de Mysl. J'essaie de modifier une donnée avec update et voilà le message d'erreur qu'il m'affiche. "Duplicate entry '11' for key 1" Quelqu'un peut me dire ce que ça signifie?

Merci d'avance
 
WRInaute impliqué
Tu dois deja avoir un enregistrement avec la valeur "11" et dans la mesure où c'est une clef primaire, tu ne peux pas avoir de doublon.
 
Nouveau WRInaute
Je ne comprends pas.
Voici le code. Pourriez-vous m'éclairicir?

Code:
$modifDonnee = "UPDATE boite SET titre='$titre', description='$description', type='$type' WHERE IDA='$IDA' ";
mysql_query($modifDonnee, $ID_Connex) or die (mysql_error());

Merci d'avance
 
WRInaute accro
petit-ourson a dit:
Tu dois deja avoir un enregistrement avec la valeur "11" et dans la mesure où c'est une clef primaire, tu ne peux pas avoir de doublon.
ce dont te parle petit-ourson ne concerne pas le code mais le contenu da la base ... un champ "sans-doublons" ne peut pas avoir la même valeur dans 2 enregistrements différents ... :wink:
 
Nouveau WRInaute
Je ne comprends pas ce que ma table a.

J'ai toujours créé mes tables de la même façon. Voilà la structure de la table.

Code:
DROP TABLE IF EXISTS boite;
CREATE TABLE boite (
  IDA int(11) NOT NULL auto_increment,
  titre varchar(200) NOT NULL default '',
  description text NOT NULL,
  type varchar(50) NOT NULL default '',
  PRIMARY KEY  (IDA)
) TYPE=MyISAM;

D'avance merci de me dire ce qui ne va pas?
 
Nouveau WRInaute
Voilà ce qui arrive quand on touche à tout sans trop savoir :)

Ce qu'on t'explique c'est que le champ IDA de ta table est déclaré comme clé primaire, en gros tu ne peux pas avoir plusieurs enregistrement dans ta table qui ont un même IDA.

Tu rencontres ce problème parce que dans ta table, il y a une ligne de données qui a IDA=11 et ton script essaie d'insérer une nouvelel ligne avec un IDA=11. Résultat->erreur.

Bon j'ai essayé d'expliquer simplement si tu comprends pas là, on n'y peut rien.
 
Nouveau WRInaute
Merci Nikos, vois-tu, c'est ce qui fait la différence entre un pro comme vous et un débuteur comme moi.

C'est sympa d'essayer de m'aider. Toutefois ça ne veut pas dire grand chose pour moi. J'ai mis la structure de ma table. Pourriez-vous faire un exemple avec cette structure pour me montrer ce qui cloche dans ma stcuture?

Ne dit-on pas qu'un exemple vaut mieux que des heures de discours?
Merci d'avance pour toute personne voulant bien m'aider.
 
Nouveau WRInaute
Je n'essaie pas d'enrégistrer des données avec un IDA identique. NON Je ne fera jamais ça. C'est une clef unique. Dans le code, on voit bien que je modifie la donnée tout simplement. Pour cette donnée, je garde le même IDA. J'ai l'impression d'être mal compris.

Script:
Code:
$modifDonnee = "UPDATE boite SET titre='$titre', description='$description', type='$type' WHERE IDA='$IDA' ";
mysql_query($modifDonnee, $ID_Connex) or die (mysql_error());

IDA est le même. WHERE IDA = '$IDA'
Merci de m'aider
 
Nouveau WRInaute
Jack_du_Lac a dit:
Pourriez-vous faire un exemple avec cette structure pour me montrer ce qui cloche dans ma stcuture?

Rien ne cloche dans la structure.

Le problème vient soit du script, soit de la séquence de génération des autoincrement de mysql qui a buggé.

Si tu n'as que 11 enregistrements, fais une copie de ta table, vide la table actuelle et fais des tests pour voir si tu rencontres le même problème.

C'est étrange que cette erreur apparaisse lors d'un update alors que la clé n'est pas modifiée..
 
Nouveau WRInaute
Merci Nikos et merci à tout le monde

J'ai trouvé le problème. C'est la base de données MySql qui buggait.
J'ai tout supprimé et tout refait. Maintenant, tout marche bien.
Bonne soirée à tout le monde
 
Discussions similaires
Haut