Erreur MySql: Duplicate entry '11' for key 1

Jack_du_Lac
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 31
Inscription: 29 Juin 2005

Erreur MySql: Duplicate entry '11' for key 1

Message le Dim Aoû 07, 2005 11:42

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

petit-ourson
WRInaute impliqué
WRInaute impliqué
 
Messages: 855
Inscription: 31 Mai 2004

Message le Dim Aoû 07, 2005 11:55

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.

Jack_du_Lac
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 31
Inscription: 29 Juin 2005

Message le Dim Aoû 07, 2005 12:08

Je ne comprends pas.
Voici le code. Pourriez-vous m'éclairicir?

Code: Tout sélectionner
$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


Cendrillon
WRInaute accro
WRInaute accro
 
Messages: 4940
Inscription: 17 Aoû 2004

Message le Dim Aoû 07, 2005 12:12

petit-ourson a écrit: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:

Jack_du_Lac
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 31
Inscription: 29 Juin 2005

Message le Dim Aoû 07, 2005 12:35

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: Tout sélectionner
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?

Nikos38
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 44
Inscription: 23 Juin 2005

Message le Dim Aoû 07, 2005 20:06

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.

Jack_du_Lac
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 31
Inscription: 29 Juin 2005

Message le Dim Aoû 07, 2005 20:47

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.

Jack_du_Lac
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 31
Inscription: 29 Juin 2005

Message le Dim Aoû 07, 2005 20:54

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: Tout sélectionner
$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

Nikos38
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 44
Inscription: 23 Juin 2005

Message le Dim Aoû 07, 2005 21:36

Jack_du_Lac a écrit: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..

Jack_du_Lac
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 31
Inscription: 29 Juin 2005

Message le Dim Aoû 07, 2005 22:33

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


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

  • Détection de pages similaires
    Cet outil vous permet de calculer la similarité entre 2 pages web. L'algorithme utilisé repose sur l'analyse des occurrences des mots (mais pas sur leur positionnement dans les pages). Google utilise cette notion à certains endroits dans son algorithme, mais de façon bien plus évoluée que ce petit outil... Avoir des pages trop similaires peut entraîner des problèmes d'indexation... Cet outil vous permettra peut-être de résoudre certains problèmes de contenus dupliqués.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité