Importation CSV ....

Fermé
Angelina - 27 nov. 2011 à 12:07
 angelina88 - 2 déc. 2011 à 14:39
Bonjour,
Je suis étudiante, j'ai un projet à faire et j'ai un probleme concernant l'importation de fichier .CSV vers la base de données MySQL .Voilà mon code :
J'ai fait 2 pages la premiere "AjoutPr.php" pour selectionner le fichier et la page "ajout_produit2.php" pour le traiter :
-AjoutPr.php
"<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("alu"); // Sélection de la base
?>
<br><br>
<form action="ajout_produit2.php" method="post" name="form1" class="Style6" enctype="multipart/form-data">
<fieldset ><legend class="Style12">Veuillez saisir les champs suivants:</legend>
<br><br>

<table width="600" height="350" border="0">


<tr>
<td><div align="left"><strong>Sélectionnez le borderaux client pour la demande concernée <br/></strong></div></td>
<td><div align="left"><strong>:</strong></div></td>
<td>
<div align="left">
<select name="borderaux_client" >
<?php
$reponse = mysql_query("SELECT borderaux_client FROM demande");
while($donnees=mysql_fetch_array($reponse))
{
echo"<option>".$donnees['borderaux_client']."</option>";
}
?>

</select>
</div></td></tr>

<tr>
<td><div align="left"><strong>Sélectionnez le nom du transitaire <br/></strong></div></td>
<td><div align="left"><strong>:</strong></div></td>
<td>
<div align="left">
<select name="nom_transitaire" >
<?php
$reponse = mysql_query("SELECT nom_transitaire FROM transitaire");
while($donnees=mysql_fetch_array($reponse))
{
echo"<option>".$donnees['nom_transitaire']."</option>";
}
?>

</select>
</div></td>
</tr>

</table> </fieldset>
<table width="150" border="1" align="center">
<tr>
<td colspan="2"><strong>Importation</strong></td>
</tr>
<tr>
<td>Fichier:</td>

<td><input name="userfile" type="file" id="userfile" value=""></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="ET HOP!">
</tr>
</table>
</form>
"
-Ajout_produit2.php:
"<?php

//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) or die("Impossible de se connecter à la base de données");

//sélection de la base de données:
$db = mysql_select_db( "alu" ) or die("Impossible de se connecter à la base de donné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> </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")
{

//on importe le fichier à inserer dans sql

$file=$_FILES["userfile"]["tmp_name"];
if (file_exists($file))
{
$open=fopen($file,"r");
}
else
{
echo "Fichier introuvable !<br>Importation stoppée.";
exit();
}
while (($fileop=fgetcsv($open,1000,";")) !==false)
{

$num_serie=$fileop[2];
$code_article=$fileop[3];
$designation=$fileop[1];



$reponse1 = mysql_query("SELECT * FROM produit where @num_serie='$num_serie' ")or die( mysql_error() );
$i=0;
while($donnees=mysql_fetch_array($reponse1))
{
$i=1;
}
if($i==0)
{

$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
$query = "INSERT INTO produit(num_serie,code_article,designation,id_projet)VALUES('$num_serie','$code_article','$designation','$id_projet')";
$requete1 = mysql_query($query, $cnx) or die( mysql_error() ) ;



$req1 = "SELECT id_demande FROM demande WHERE borderaux_client='" . $borderaux_client. "'";
$result1 = mysql_query($req1) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
if ($result_demande = mysql_fetch_array($result1))
$id_demande = $result_demande['id_demande']; // récèpure id_demande dans le tableau résultat


$sql2 = "INSERT INTO demande_produit (id_demande,num_serie)
VALUES ('$id_demande','$num_serie')" ;
$requete2 = mysql_query($sql2, $cnx) or die( mysql_error() ) ;

$sql3 = "INSERT INTO transit_produit (nom_transitaire,num_serie)
VALUES ('$nom_transitaire','$num_serie')";
$requete3 = mysql_query($sql3, $cnx) or die( mysql_error() ) ;




//affichage des résultats, pour savoir si l'insertion a marché:
if($requete1 && $requete2 && $requete3)
{
echo("L'insertion a été correctement effectuée") ;
}
else
{
echo("L'insertion a échouée") ;
}

}

else{
echo"<SCRIPT language=\"Javascript\">
alert(\"Ce produit existe!\");
window.location.replace(\"ajout_produit.php\");
</SCRIPT>";
exit();
}


}
fclose($open);
print '<h2>Importation terminée</h2>';



}

else{
echo"<SCRIPT language=\"Javascript\">

alert(\"Cette demande est déjà close !\");
window.location.replace(\"AjoutPr.php\");
</SCRIPT>";
}


?>
"
et Quand j'execute voilà l'erreur que j'ai:
"Incorrect string value: '\xB0 de S...' for column 'Num_serie' at row 1"

Mercii d'avance ^^ J'attends vos suggestions impatiemment :)
Bonne journée

2 réponses

Pas de reponse :'( plzzzz j'ai besoin d'aide le plus tot possible !!
0
Voilà mon code pour qu'il soit plus lisible:

* problème d'importation de fichier .CSV vers la base de données MySQL .Voilà mon code :
J'ai fait 2 pages la premiere "AjoutPr.php" pour selectionner le fichier et la page "ajout_produit2.php" pour le traiter :

-AjoutPr.php
<code type="php">
<?php
mysql_connect("localhost", "root", "" ); // Connexion à MySQL
mysql_select_db("alu" ); // Sélection de la base
?>
<br><br>
<form action="ajout_produit2.php" method="post" name="form1" class="Style6" enctype="multipart/form-data">
<fieldset><legend class="Style12">Veuillez saisir les champs suivants:</legend>
<br><br>
<table width="600" height="350" border="0">
<tr>
<td><div align="left"><strong>Sélectionnez le borderaux client pour la demande concernée <br/></strong></div></td>
<td><div align="left"><strong>:</strong></div></td>
<td>
<div align="left">
<select name="borderaux_client" >
<?php
$reponse = mysql_query("SELECT borderaux_client FROM demande" );
while($donnees=mysql_fetch_array($reponse))
{
echo"<option>".$donnees['borderaux_client']."</option>";
}
?>
</select>
</div></td></tr>
<tr>
<td><div align="left"><strong>Sélectionnez le nom du transitaire <br/></strong></div></td>
<td><div align="left"><strong>:</strong></div></td>
<td>
<div align="left">
<select name="nom_transitaire" >
<?php
$reponse = mysql_query("SELECT nom_transitaire FROM transitaire" );
while($donnees=mysql_fetch_array($reponse))
{
echo"<option>".$donnees['nom_transitaire']."</option>";
}
?>
</select>
</div></td>
</tr>
</table> </fieldset>
<table width="150" border="1" align="center">
<tr>
<td colspan="2"><strong>Importation</strong></td>
</tr>
<tr>
<td>Fichier:</td>
<td><input name="userfile" type="file" id="userfile" value=""></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="ET HOP!">
</tr>
</table>
</form>
<code>
-Ajout_produit2.php:
<code type="php">
<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) or die("Impossible de se connecter à la base de données" );
//sélection de la base de données:
$db = mysql_select_db( "alu" ) or die("Impossible de se connecter à la base de donné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'];?>>
<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" )
{
//on importe le fichier à inserer dans sql
$file=$_FILES["userfile"]["tmp_name"];
if (file_exists($file))
{
$open=fopen($file,"r" );
}
else
{
echo "Fichier introuvable !<br>Importation stoppée.";
exit();
}
while (($fileop=fgetcsv($open,1000,";" )) !==false)
{
$num_serie=$fileop[2];
$code_article=$fileop[3];
$designation=$fileop[1];
$reponse1 = mysql_query("SELECT * FROM produit where @num_serie='$num_serie' " )or die( mysql_error() );
$i=0;
while($donnees=mysql_fetch_array($reponse1))
{
$i=1;
}
if($i==0)
{
$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
$query = "INSERT INTO produit(num_serie,code_article,designation,id_projet)VALUES('$num_serie','$code_article','$designation','$id_projet')";
$requete1 = mysql_query($query, $cnx) or die( mysql_error() ) ;
$req1 = "SELECT id_demande FROM demande WHERE borderaux_client='" . $borderaux_client. "'";
$result1 = mysql_query($req1) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
if ($result_demande = mysql_fetch_array($result1))
$id_demande = $result_demande['id_demande']; // récèpure id_demande dans le tableau résultat
$sql2 = "INSERT INTO demande_produit (id_demande,num_serie)
VALUES ('$id_demande','$num_serie')" ;
$requete2 = mysql_query($sql2, $cnx) or die( mysql_error() ) ;
$sql3 = "INSERT INTO transit_produit (nom_transitaire,num_serie)
VALUES ('$nom_transitaire','$num_serie')";
$requete3 = mysql_query($sql3, $cnx) or die( mysql_error() ) ;
//affichage des résultats, pour savoir si l'insertion a marché:
if($requete1 && $requete2 && $requete3)
{
echo("L'insertion a été correctement effectuée" ) ;
}
else
{
echo("L'insertion a échouée" ) ;
}
}
else{
echo"<SCRIPT language=\"Javascript\">
alert(\"Ce produit existe!\" );
window.location.replace(\"ajout_produit.php\" );
</SCRIPT>";
exit();
}
}
fclose($open);
print '<h2>Importation terminée</h2>';
}
else{
echo"<SCRIPT language=\"Javascript\">
alert(\"Cette demande est déjà close !\" );
window.location.replace(\"AjoutPr.php\" );
</SCRIPT>";
}
?>
<code>

et Quand j'execute voilà l'erreur que j'ai:
"Incorrect string value: '\xB0 de S...' for column 'Num_serie' at row 1"
Mercii
Bonne journée
0