Posez votre question Signaler

Problème: Duplicate entry 'xxxx' for key 1

chamslo - Dernière réponse le 7 avril 2011 à 05:19
Bonjour,
j'ai le message d'erreur suivant pour PhP classifieds
Error
SQL query:
INSERT INTO 'phpclass_ad' ('ad_id', 'ad_owner', 'ad_cat_id', 'ad_title', 'ad_description', 'ad_date', 'ad_date_expire', 'ad_date_updated', 'ad_expires_after_days', 'ad_owner_notified', 'ad_has_video', 'ad_has_picture', 'ad_has_doc', 'ad_views', 'ad_votes', 'ad_voters', 'ad_totalscore', 'ad_last_vote_ip', 'ad_is_validated', 'ad_is_sold', 'ad_is_special', 'ad_is_premium', 'ad_region') VALUES (1969, 8338, 21, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, 1261653373, 1293189373, 1261656285, 0, 0, 0, 5, 0, 873, 0.00, 0, 0.00, '0', 0, 0, 0, 0, 0), (1952, 8283, 21, 'xxxxxxxxxxxxxxxxxxxx[...]
MySQL said: Documentation
#1062 - Duplicate entry '1969' for key 1
voici le script de la table:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
Lire la suite 

Problème: Duplicate entry 'xxxx' for key 1 »

12 réponses
Réponse
+0
moins plus
Tu as deja une entree dans ta table ayant pour ad_id 1969... Du coup, tu essayes d'inserer une nouvelle ligne avec un meme id de cle primaire ce qui n'est pas possible.
Ajouter un commentaire
Réponse
+0
moins plus
mais j'ai pas de ad_id qui est répétée, même le 1969 n'existe pas dans les données de la table,
et en plus ce problème ce répète toujours avec d'autres ID
Ajouter un commentaire
Réponse
+0
moins plus
Alors tu dois avoir une contrainte sur un autre champ qui fait que tu ne peux pas ajouter deux fois une ligne avec un même champ.
Le tout est de trouver quelle contrainte (key 1) et sur quel champ.

Par contre je ne comprends pas, ton auto-increment commence manifestement à 4126

ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4126 ;


mais tu essayes de faire un insert avec comme id principal (le champ ad_id est bien la clef primaire) 1969.

Tu as purgé ta table sans réinitialiser l'auto-incrément ?
Ajouter un commentaire
Réponse
+0
moins plus
j'avoue que je maîtrise pas le mysql,
j'utilise une base de phpclassifieds modifiée par un ami,
si vous pouvez m'aider je pourrais vous envoyer toute la base avec ses données sur votre émail,
voici mon émail: chamslo@yahoo.fr
cdt
arthezius- 15 déc. 2010 à 12:55
Ton champ ad_id est en auto-increment. Laisse donc le champ vide dans ta requête.
Le principe même de l'auto-increment c'est qu'il augmente la valeur de 1 a chaque nouvelle entré dans la base de donnée. Actuellement il est arrivé a 4126. Donc pour lui, la valeur 1969 existe déjà.
Ajouter un commentaire
Réponse
+0
moins plus
"Laisse donc le champ vide dans ta requête" cad comment je fais pour ces 2 lignes:

'ad_id' int(11) NOT NULL auto_increment,

ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4126

merci
Ajouter un commentaire
Réponse
+0
moins plus
si il s'agit d'une vraie insertion (et non un update) tu n'as pas besoin de renseigner le champ ad_id dans la requête ci-dessous (modifiée)

INSERT INTO 'phpclass_ad' ('ad_owner', 'ad_cat_id', 'ad_title', 'ad_description', 'ad_date', 'ad_date_expire', 'ad_date_updated', 'ad_expires_after_days', 'ad_owner_notified', 'ad_has_video', 'ad_has_picture', 'ad_has_doc', 'ad_views', 'ad_votes', 'ad_voters', 'ad_totalscore', 'ad_last_vote_ip', 'ad_is_validated', 'ad_is_sold', 'ad_is_special', 'ad_is_premium', 'ad_region') VALUES ( 8338, 21, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, 1261653373, 1293189373, 1261656285, 0, 0, 0, 5, 0, 873, 0.00, 0, 0.00, '0', 0, 0, 0, 0, 0), (1952, 8283, 21, 'xxxxxxxxxxxxxxxxxxxx[...] 


Ainsi la ligne insérée aura pour ad_id 4126 (ou 4127 je ne sais jamais) et tu n'auras pas l'erreur.

Juste pour être sûr : on est bien d'accord que tu veux insérer une nouvelle ligne et que tu ne veux pas la mettre à jour ?
Si c'est bien le cas, comment récupères-tu la valeur 1969 ?
Ajouter un commentaire
Réponse
+0
moins plus
merci pour votre aide,
Oui il s'agit d'une insertion, en fait, j'ai vidé la table et j'en ai inséré des anciennes données de la base sauvegardée c pour cela que je récupéré la valeur 1969.
Ajouter un commentaire
Réponse
+0
moins plus
as-tu réussi à réinitialiser l'auto-incrément pour finir ?
Ajouter un commentaire
Réponse
+0
moins plus
désolé pour cette réponse tardive,
le problème persiste toujours, et mes sites d'annonces qui utilisent phpclassifieds ont toujours un problème de connexion pour les utilisateurs:
un utilisateur n'arrive plus à se connecter au site malgré qu'il possède un compte qu'il l'a utilisé avant pour se connecter et ajouter son annonce,
j'ai pu localiser le problème, il est en fait dis au niveau de la table phpclass_ad qui contient les annonces,
je pense que le problème est au niveau du texte des annonces elles même,
car lorsque je supprime certaines annonces, le problème se règle,
un exemple, ici dans ce code, je supprime l'annonce numéro 152, le problème de connexion se règle, se problème se répète dans plusieurs de mes sites.
est ce que quelqu'un connais à quoi est dis ce problème,
merci
Ajouter un commentaire
Réponse
+0
moins plus
voici le code pour voir l'annonce numéro 152:

--
-- Table structure for table 'phpclass_ad'
--

CREATE TABLE IF NOT EXISTS 'phpclass_ad' (
  'ad_id' int(11) NOT NULL auto_increment,
  'ad_owner' int(11) default '0',
  'ad_cat_id' int(11) default '0',
  .
  .
  .
  'ad_is_premium' tinyint(1) default '0',
  'ad_region' int(11) default '0',
  PRIMARY KEY  ('ad_id'),
  FULLTEXT KEY 'ad_title' ('ad_title'),
  FULLTEXT KEY 'ad_title_2' ('ad_title'),
  FULLTEXT KEY 'ad_title_3' ('ad_title'),
  FULLTEXT KEY 'ad_title_4' ('ad_title'),
  FULLTEXT KEY 'ad_title_5' ('ad_title'),
  FULLTEXT KEY 'ad_title_6' ('ad_title'),
  FULLTEXT KEY 'ad_title_7' ('ad_title'),
  FULLTEXT KEY 'ad_title_8' ('ad_title'),
  FULLTEXT KEY 'ad_title_9' ('ad_title'),
  FULLTEXT KEY 'ad_title_10' ('ad_title','ad_description'),
  FULLTEXT KEY 'ad_title_11' ('ad_title','ad_description'),
  .
  .
  .
  FULLTEXT KEY 'ad_title_62' ('ad_title','ad_description'),
  FULLTEXT KEY 'ad_title_63' ('ad_title','ad_description')
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=192 ;

--
-- Dumping data for table 'phpclass_ad'
--

INSERT INTO 'phpclass_ad' ('ad_id', 'ad_owner', 'ad_cat_id', 'ad_title', 'ad_description', 'ad_date', 'ad_date_expire', 'ad_date_updated', 'ad_expires_after_days', 'ad_owner_notified', 'ad_has_video', 'ad_has_picture', 'ad_has_doc', 'ad_views', 'ad_votes', 'ad_voters', 'ad_totalscore', 'ad_last_vote_ip', 'ad_is_validated', 'ad_is_sold', 'ad_is_special', 'ad_is_premium', 'ad_region') VALUES
(152, 171, 46, 'trés belles et ancienne chambre à coucher (beyet)', 'Garde robe 2.88m de long 2.30 de large 44cm de profond.lit 2.09m de long 1.73m de large, commode 85cm de long 47cm de large', 1267369611, 1298905611, 0, 0, 0, 0, 0, 0, 581, 0.00, 0, 0.00, '0', 0, 0, 0, 0, 0),
(159, 185, 53, 'ENT Audureau couverture-zinguerie', 'neuf, entretien, rénovation, pose de velux, cheminée, charpente.', 1272743365, 1304279365, 0, 0, 0, 0, 1, 0, 493, 0.00, 0, 0.00, '0', 0, 0, 0, 0, 0),
(160, 187, 21, 'Appatement à vendre à Tanger', 'Appt. titré, à vendre à Gzenaya (Groupe Abdallas) 72 m2, 1er étage, \r\ndouble façade, très ensoleillé , 3 chambres (1 chambre avec grand  placard) + salon, cuisine, + un placards  pour rangement, salle de bain (cabine douche ) entièrement refait, peinture, plâtre, carrelage, ferronnerie aux fenêtres, sortie aération cuisine.\r\nPrix: 450.000,00 dhs\r\nNous contacter au 0644 69 24 45\r\n(photos sur demande).', 1273493663, 1305029663, 0, 0, 0, 0, 0, 0, 481, 0.00, 0, 0.00, '0', 0, 0, 0, 0, 0);

Ajouter un commentaire
Réponse
+0
moins plus
Salut


Il y a un bug dans PHP classifieds de Deltascripts version 7.5

les paramètres de recherche sont perdus lorsque l'on utilise les régions.
Si vous cliquez sur une région puis sur le boutons " 10 prochaines annonces" les paramètres de requêtes (celle de la région choisie ) sont perdus

comment corriger l'erreur ?


voilà un site qui a corrigé le problème mais son propriétaire ne veut pas partager ses secrets...il est égoïste... http://www.bricbroc.com/search.php

il a utilisé un paramètre au niveau de sa requête ad_date_updated


http://www.bricbroc.com/search.php?order=ad_date_updated&way=0®_1=18®_2=93_&do_search=1&user_ad_id=&offset=15

sur ce site si vous cliquez sur une région de la carte et s'il y a plusieurs annonces et si vous cliquez sur le bouton suivant les paramètres de la région sont préservés.


merci
Ajouter un commentaire
Ce document intitulé « Problème: Duplicate entry 'xxxx' for key 1 » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?