par
FURAX69 » 11 nov. 2009, 12:51
Bonjour à tous,
Je débute (mais avance bien

) et je dois proposer l'importation d'un fichier dans une table SQL par des utilisateurs lambda. Pas question de leur laisser Phpmyadmin donc...
Je cherche donc à utiliser la fonction qui va bien...
Je commence donc par récupérer un fichier CSV issu d'Excel et qui est sous cette forme :
Code : Tout sélectionner
-;XX;Marque test;Produit 1;Connecteur MDR mâle type 1;100;100;pièce;1;100;2.59;600;2.39;1100;2.19;-;-;-;-
-;XX;Marque test;Produit 2;Connecteur MDR mâle type 2;100;100;pièce;14;100;1.85;600;1.71;1100;1.57;-;-;-;-
-;XX;Marque test;Produit 3;Connecteur MDR mâle type 3;100;100;pièce;14;100;1.96;600;1.81;1100;1.66;-;-;-;-
-;XX;Marque test;Produit 4;Connecteur MDR mâle type 4;100;100;pièce;1;100;2.81;600;2.6;1100;2.38;-;-;-;-
-;XX;Marque test;Produit 5;Connecteur MDR mâle type 5;100;100;pièce;14;100;5.93;600;5.48;1100;5.02;-;-;-;-
Je propose l'envoi de ce fichier par un petit formulaire :
Code : Tout sélectionner
<form action="ajouter.php" method="post" enctype="multipart/form-data" name="form1">
<p><input type="file" name="file" /></p>
<input type="submit" name="Submit" value="Envoyer">
</form>
Jusque là, tout va bien... Ensuite, je dois exploiter ce fichier... C'est là que je coince depuis des heures !!!
Voici ce que j'ai écris :
Code : Tout sélectionner
if (isset($_FILES['file']))
{
$file = $_FILES['file']['tmp_name'];
// Petite lecture pour vérifier
$handle = fopen($file,'r');
$row = 1;
$handle = fopen("$file", "r");
while (($data = fgetcsv($handle, 4096, ";")) !== FALSE)
{
$num = count($data);
echo "<p> $num données trouvés à la ligne $row: <br /></p>\n";
$row++;
}
// Puis on insère les data dans la table
$query= "LOAD DATA INFILE '$file' INTO TABLE $table FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\' LINES STARTING BY '' TERMINATED BY '\r\n' ";
$req = mysql_query($query) or die (mysql_error());
}
...
J'obtient systématiquement "Erreur de syntaxe près de ''' à la ligne 2" !!!
Alors que mon fichier s'importe bien via PhpMyAdmin, avec les mêmes paramètres !
HELP...
Bonjour à tous,
Je débute (mais avance bien ;) ) et je dois proposer l'importation d'un fichier dans une table SQL par des utilisateurs lambda. Pas question de leur laisser Phpmyadmin donc...
Je cherche donc à utiliser la fonction qui va bien...
Je commence donc par récupérer un fichier CSV issu d'Excel et qui est sous cette forme :
[code]-;XX;Marque test;Produit 1;Connecteur MDR mâle type 1;100;100;pièce;1;100;2.59;600;2.39;1100;2.19;-;-;-;-
-;XX;Marque test;Produit 2;Connecteur MDR mâle type 2;100;100;pièce;14;100;1.85;600;1.71;1100;1.57;-;-;-;-
-;XX;Marque test;Produit 3;Connecteur MDR mâle type 3;100;100;pièce;14;100;1.96;600;1.81;1100;1.66;-;-;-;-
-;XX;Marque test;Produit 4;Connecteur MDR mâle type 4;100;100;pièce;1;100;2.81;600;2.6;1100;2.38;-;-;-;-
-;XX;Marque test;Produit 5;Connecteur MDR mâle type 5;100;100;pièce;14;100;5.93;600;5.48;1100;5.02;-;-;-;-[/code]
Je propose l'envoi de ce fichier par un petit formulaire :
[code]<form action="ajouter.php" method="post" enctype="multipart/form-data" name="form1">
<p><input type="file" name="file" /></p>
<input type="submit" name="Submit" value="Envoyer">
</form>[/code]
Jusque là, tout va bien... Ensuite, je dois exploiter ce fichier... C'est là que je coince depuis des heures !!!
Voici ce que j'ai écris :
[code]if (isset($_FILES['file']))
{
$file = $_FILES['file']['tmp_name'];
// Petite lecture pour vérifier
$handle = fopen($file,'r');
$row = 1;
$handle = fopen("$file", "r");
while (($data = fgetcsv($handle, 4096, ";")) !== FALSE)
{
$num = count($data);
echo "<p> $num données trouvés à la ligne $row: <br /></p>\n";
$row++;
}
// Puis on insère les data dans la table
$query= "LOAD DATA INFILE '$file' INTO TABLE $table FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\' LINES STARTING BY '' TERMINATED BY '\r\n' ";
$req = mysql_query($query) or die (mysql_error());
}
...[/code]
J'obtient systématiquement "Erreur de syntaxe près de ''' à la ligne 2" !!!
Alors que mon fichier s'importe bien via PhpMyAdmin, avec les mêmes paramètres !
HELP...