insertion de données csv dans mysql

insertion de données csv dans mysql - PHP - Programmation

Marsh Posté le 11-12-2011 à 13:04:10    

Voilà mon code
 
<?php
 
    $req = "SELECT id_projet FROM projet WHERE nom_projet='" . $nom_projet . "'";
 $result = mysql_query($req) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
 if ($result_projet = mysql_fetch_array($result))  
 $id_projet = $result_projet['id_projet']; // récupère id_projet dans le tableau résultat
 //on importe le fichier à inserer dans sql
     
                 
   $i=0;            
$file=$_FILES["userfile"]["tmp_name"];
   $FILE=fopen($file,"r" );               // ouverture du fichier
   while (!feof($FILE))
   {
                                 
$tableau[$i] = explode (";" ,fgets($FILE,128));
 
   
     $i++;  
 
      }
   fclose($FILE);
   print '<h2>Importation termin&eacute;e</h2>';
 $nblignes=$i;
 for ($i=1;$i<$nblignes;$i++)
         {
             $v1=$tableau[$i][0];
             $v2=$tableau[$i][2];
             $v3=$tableau[$i][3];
             mysql_query("INSERT INTO produit(num_serie,code_article,techno,id_projet)  VALUES ('$v2', '$v3', '$v1','$id_projet')" )or die(mysql_error());
         }
?>
 
 
et voilà l'erreur que j'ai "Incorrect string value: '\xE9lais ...' for column 'Num_serie' at row 1"
en savant que la colonne "num_serie" est VARCHAR
 
Merci d'avance

Reply

Marsh Posté le 11-12-2011 à 13:04:10   

Reply

Marsh Posté le 11-12-2011 à 13:46:38    

Voilà le code en total et j'ai une autre erreur lorsque j'ai ajouter un if dans la boucle for:
 
 
<?php
 
  //connection au serveur
  $cnx = mysql_connect( "localhost", "root", "" ) or die("Impossible de se connecter &agrave; la base de donn&eacute;es" );  
 
  //sélection de la base de données:
  $db  = mysql_select_db( "alu" ) or die("Impossible de se connecter &agrave; la base de donn&eacute;es" );
 
  //récupération des valeurs des champs:
   
  $borderaux_client     = $_POST["borderaux_client"] ;
  $nom_transitaire     = $_POST["nom_transitaire"] ;
   
 
 
//trouver le nom de projet correspondant à la demande
$reponse= mysql_query("SELECT projet.nom_projet FROM demande_projet,demande,projet WHERE demande_projet.id_demande=demande.id_demande AND projet.id_projet=demande_projet.id_projet AND demande.borderaux_client='$borderaux_client'" )or die(mysql_error());
$donnees=mysql_fetch_array($reponse);
$nom_projet=$donnees['nom_projet'];
 
?>
<br><br>
<p><strong>Nom projet</strong> :<?php echo $donnees['nom_projet'];?></p>
    <input type="hidden" name="nom_projet" value=<?php echo $donnees['nom_projet'];?>>
    <p>&nbsp;</p><br/>
<?php
 $req2 = "SELECT statut_demande FROM demande WHERE borderaux_client='".$borderaux_client."'";
 $result3 = mysql_query($req2) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
 if ($result_statut = mysql_fetch_array($result3))
  $statut_demande = $result_statut['statut_demande'];
  if($statut_demande=="En cours" )
  {
 
    $req = "SELECT id_projet FROM projet WHERE nom_projet='" . $nom_projet . "'";
 $result = mysql_query($req) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
 if ($result_projet = mysql_fetch_array($result))  
 $id_projet = $result_projet['id_projet']; // récupère id_projet dans le tableau résultat
 //on importe le fichier à inserer dans sql
     
                 
   $i=0;            
$file=$_FILES["userfile"]["tmp_name"];
   $FILE=fopen($file,"r" );               // ouverture du fichier
   while (!feof($FILE))
   {
                                 
$tableau[$i] = explode (";" ,fgets($FILE,128));
 
   
     $i++;  
 
      }
   fclose($FILE);
   print '<h2>Importation termin&eacute;e</h2>';
 $nblignes=$i;
 for ($i=2;$i<$nblignes;$i++)
         {
   $v=$tableau[$i][1];
 if($v==$borderaux_client)// sélectionner seulement les produits qui ont le borderaux client selectionné
           {  $v1=$tableau[$i][0];
             $v2=$tableau[$i][2];
             $v3=$tableau[$i][3];
             mysql_query("INSERT INTO produit(num_serie,code_article,techno,id_projet)  VALUES ('$v2', '$v3', '$v1','$id_projet')" )or die(mysql_error());}
         }
 
         
}
 
else{
echo"<SCRIPT language=\"Javascript\">
 
alert(\"Cette demande est d&eacute;j&agrave; close !\" );
window.location.replace(\"AjoutPr.php\" );
</SCRIPT>";
}
 
 
 ?>
il me donne une erreur dans la ligne où il y a $v=$tableau[$i][1];
 
merci d'avance
 

Reply

Marsh Posté le 12-12-2011 à 12:03:01    

Déjà prépare tes variables qui alimentent ta base :
http://php.benscom.com/manual/fr/f [...] string.php
 
Vérifie que ta base est en innodb et met en place une transaction
http://dev.mysql.com/doc/refman/5.0/fr/commit.html
 


Message édité par Fredo798 le 12-12-2011 à 12:04:32
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed