Php: Duplicata du champ '0' pour la clef 1

Résolu
simou -  
 simou -
Bonjour,
j'ai un fichier txt que je doit insérer son contenu dans la base mysql à table architecte
ce fichier contient le id et le nom de l'architecte.
je doit insérer le nom et le id si il n'existe pas dans la table et dans le cas ou il existe juste un simple update voila mon script :
<?php
    require_once("xx/db_connect.inc.php");
	require_once('xx/xxx.php'); 

	$connexion=db_connexion();	
	
	 mysql_query("set names utf8");	
	

// Connexion db 

$fichier_ouvrir = @fopen("permis.txt", "r");
if ($fichier_ouvrir) {
    while (!feof($fichier_ouvrir)) {
        $var_id= rtrim(fgets($fichier_ouvrir, 11));
		$var_titre_archt= rtrim(fgets($fichier_ouvrir, 200));
       
	    $sql= mysql_query("select * from architecte1 where id_archi='$var_id'") or die('Erreue: ' . mysql_error() . "<br />\n$sql"); 
		
		if (mysql_num_rows($sql) >=1)
        {			     
		  
		 $req="DELETE from architecte1 where id_archi='$var_id'";
		
	     $req="INSERT INTO architecte1 (id_archi,titre_archi) VALUES ('$var_id','$var_titre_archt')";
	     
         $req=mysql_query ("$req")or die(mysql_error());    
		 
		// $req = sprintf("INSERT INTO architecte1 VALUES ('%s', '%s');", mysql_real_escape_string($var_id), mysql_real_escape_string($var_titre_archt));
         //mysql_query($req) or die ('Erreur SQL ! Sur la requête $req<br />'.mysql_error());
	
		 }  
  else
{
  	     $req="INSERT INTO architecte1 (id_archi,titre_archi) VALUES ('$var_id','$var_titre_archt')";
	     
         $req=mysql_query ("$req")or die(mysql_error());  
}
	
		   
}
 fclose($fichier_ouvrir); 
 
 }
 
// Fermeture DB
?>

Le probleme c en executant ce script l'insertion ce fait seulement en 1er enregistrement et avec le msg d'erreur : Duplicata du champ '0' pour la clef 1
NB: le champs id_archt est un clé primaire mais pas auto-incrément parce que les id de l'architecte suivant le fichier
Qui peut m'aider a résoudre ce problème?? c'est très urgent s'il vous plais !
A voir également:

1 réponse

tito23 Messages postés 305 Date d'inscription   Statut Membre Dernière intervention   4
 
Comme je t'ai dit dans l'autre poste il faut prendre lla valeur entière de $var_id
 $req="INSERT INTO architecte1 (id_archi,titre_archi) VALUES (".intval($var_id).",'$var_titre_archt')";
0
simou
 
oui c ca ;) merci encore
0