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

Fermé
chamslo - 14 déc. 2010 à 23:44
 phpclassifieds - 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 */;

11 réponses

daftdef Messages postés 133 Date d'inscription jeudi 28 octobre 2010 Statut Webmaster Dernière intervention 2 juillet 2019 63
15 déc. 2010 à 00:02
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.
0
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
0
daftdef Messages postés 133 Date d'inscription jeudi 28 octobre 2010 Statut Webmaster Dernière intervention 2 juillet 2019 63
15 déc. 2010 à 11:38
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 ?
0
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
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
Modifié par arthezius le 15/12/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à.
0

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

Posez votre question
"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
0
daftdef Messages postés 133 Date d'inscription jeudi 28 octobre 2010 Statut Webmaster Dernière intervention 2 juillet 2019 63
15 déc. 2010 à 14:10
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 ?
0
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.
0
daftdef Messages postés 133 Date d'inscription jeudi 28 octobre 2010 Statut Webmaster Dernière intervention 2 juillet 2019 63
15 déc. 2010 à 17:41
as-tu réussi à réinitialiser l'auto-incrément pour finir ?
0
chamslo Messages postés 6 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 24 mars 2011
4 mars 2011 à 18:58
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
0
chamslo Messages postés 6 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 24 mars 2011
4 mars 2011 à 19:14
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);

0
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
0