Duplicate entry '2' for key 1 - PHP - Programmation
Marsh Posté le 05-07-2005 à 12:01:58
Erreur de MySQL
Edit: tu veux dupliquer ta clé, c'est pas possible.
Marsh Posté le 05-07-2005 à 12:05:33
un clef doit etre unique c'est ça ?
en fait dans mon code je supprime un enregistrement et je le recree... (avec le même numero de clef) peut etre que l'erreur vient de la ?
Marsh Posté le 05-07-2005 à 12:07:20
freed102 a écrit : un clef doit etre unique c'est ça ? |
Bah oui c'est la définition.
Edit: Tu as déjà fais des BD?
Marsh Posté le 05-07-2005 à 12:08:11
bon sinon comment on retire l'attribut "key" d'un champ en mysql ?
Marsh Posté le 05-07-2005 à 12:08:58
freed102 a écrit : bon sinon comment on retire l'attribut "key" d'un champ en mysql ? |
C'est toi qui a fait la base de données?
Explique moi concrétement ton problème.
Marsh Posté le 05-07-2005 à 12:22:25
oui c moi qui ait fait la base de données, en fait je fais un systeme de devis/facturation...
j'ai donc trois tables
factures -> references_factures ->items_facture
au debut la difference entre un devis et une facture etait juste un champs 'type_commande' qui indiquait "facture" ou "devis"... il suffit de cliquer sur un bouton pour transformer un devis en facture et vis versa. Maintenant je me rends compte qu'il y a un probleme concernant l'attribution des numeros de facture... il ne peut pas y avoir de "trou" dans la numerotation des factures, au debut les devis etaient inclus dans la même serie que les factures... hors on suppose qu'un devis n'est pas forcement accepté... dans ce cas... ça provoquerait un "trou" dans la facturation.. ce qui n'est pas correct... donc j'ai decidé de changer de systeme de numerotation en séparant les devis des factures...
les devis commencent par DEV000001 (et s'incrémentent de 1)
les factures sont sous la forme 0000356 (et s'incrémentent de 1)
si un devis devient une facture.. il reprends la série des factures (0000357) en incrémentant de 1... logiquement comme ça il ne peut pas y avoir de trou dans les factures puisque il prends toujours le dernier nombre et ajoute 1.
simplement j'ai du m'emmeler les crayons au niveau du SQL pour effacer et recreer mes enregistrements...
un bout de code pour comprendre mieux :
Code :
|
Marsh Posté le 05-07-2005 à 17:04:33
c bon j'ai corrigé mon erreur... conflit de numero de facture
Marsh Posté le 05-07-2005 à 12:00:59
"Duplicate entry '2' for key 1"
ça veut dire quoi ?
j'arrive pas à savoir de quoi il s'agit, j'ai pas de numero de ligne, je sais pas si c une erreur mysql ou php... je soupçonne une erreur concernant les foreach que j'ai dans mon code.. mais là je sais pas ! je suis perdu !