Importation CSV ....

Angelina -  
 angelina88 -
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

  1. Angelina
     
    Pas de reponse :'( plzzzz j'ai besoin d'aide le plus tot possible !!
    0
  2. angelina88
     
    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