Problème d'insertion dans MySQL

Messages postés
6
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
3 juin 2011
- - Dernière réponse : Arsonbaby
Messages postés
20
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
13 décembre 2010
- 5 oct. 2010 à 13:37
Bonjour à tous,

La site dans laquelle je travaille a un site déjà crée. Me demandant la mise à jour du site, je rencontre un problème d'insertion de donnée dans la base de donnée du type #1062 - Duplicate entry '1' for key 'PRIMARY

Sur cette table, il y a donc un problème de clé primaire ça ok. Le problème que l'id de ma table n'a pas la valeur auto-increment. Je pense qu'il y aura un souci si je passe ce champ en auto-increment. En effet qu'en sera-t-il de l'ensemble de tous les enregistrements dans la base ? Et comment remedier à ce problème éventuel ?

Merci beaucoup.
Afficher la suite 

6 réponses

Messages postés
70
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
17 mai 2019
2
0
Merci
si tu ne veux pas passer en auto incrément, il faut que tu recupère l'id max de la table, puis insere ta nouvelle entrée en précisant id = idmax+1

<?php
function ajout_base()//procedure d'insertion dans la base
{	
//creation de la connection	(sv,util,mdp)
$conn=mysql_connect('localhost','root','');
//selection de la BDD
$bdd=mysql_select_db('ESSAI',$conn);

//recuperer dernier id de la table pour ajout -- ou mettre  a //mettre auto increment sur CODE_CLIENT
$req_max_id="SELECT MAX( CODE_CLIENT ) FROM ESSAI.CLIENTS";

$max_id=mysql_fetch_row(mysql_query($req_max_id,$conn));

//code_client a ajouter pour le nouveau client = $max_id[0]+1
//creation de la requete INSERT	
$requete_insert="INSERT INTO `essai`.`clients` (`CODE_CLIENT` ,`PRE_CL` ,`NOM`)";
$requete_insert.="VALUES ('";
$requete_insert.=$max_id[0]+1;
$requete_insert.="', 'robert', 'bidochon')";
$resultat_ajout=mysql_query($requete_insert,$conn);

if($resultat_ajout ==1)
{
   echo 'ajout ok';
}
else
{
   echo 'Problème lors de l\'insertion dans la base ;
}
}
?>
Commenter la réponse de Raul duke
Messages postés
1310
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
10
0
Merci
Salut,

Le plus simple est d'avoir l'auto-increment et de le régler à la bonne valeur avec une requête de ce genre :
ALTER TABLE `ta_table`  AUTO_INCREMENT = 42;
Commenter la réponse de TychoBrahe
Messages postés
6
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
3 juin 2011
0
Merci
Merci pour vos réponses.

TychoBrahe : si j'ai bien compris, je dois remettre mon champ à auto-increment et chercher la valeur la plus importante de l'id et commencer l'increment à cette valeur ?

Mais le "alter table", je le place à quel endroit dans le code ? Est ce que je peux faire cette manipulation dans le PhpMyAdmin ??

Merci beaucoup.

PS: Je n'occulte pas ta proposition Raul, merci en tout cas.
Commenter la réponse de cs_jamiros
Messages postés
1310
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
10
0
Merci
Jamiros : tu ne met pas ça dans ton code, tu le fais une seule et unique fois afin que l'auto-increment fonctionne et après tout ira bien.
Commenter la réponse de TychoBrahe
Messages postés
6
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
3 juin 2011
0
Merci
Peux tu me donner la procédure à suivre dans MySQL.

Voici les infos que j'ai à te donner concernant ma table :
SQL de ma table (correspond à la 28e page dans phpmyadmin) :
SELECT *
FROM `produits_to_langages`
LIMIT 810 , 30

Voici le SQL general pour la table :
SELECT * FROM `produits_to_langages` WHERE 1
"Where 1" correspond à la langue française (car 2 autres langues possibles)

Structure de ma table :
Champ Type Extra
id_produits int(11)
id_langages int(11)
titre_produits varchar(255)
des_produits text
energie_produits varchar(255)
fiche_technique varchar(255)


Merci d'avance, en plus mon boss est passé ce midi pour me dire que ça urgeait !!
Commenter la réponse de cs_jamiros
Messages postés
20
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
13 décembre 2010
0
Merci
je desir avoir la méthode d'utilisation  du dataenvironnement
Commenter la réponse de Arsonbaby