problèmes importation .csv vers MySQL
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
"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| <?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:
"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| <?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