Script import csv

Résolu/Fermé
kayajiro Messages postés 58 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 27 janvier 2015 - Modifié par jordane45 le 11/12/2014 à 09:58
kayajiro Messages postés 58 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 27 janvier 2015 - 13 janv. 2015 à 14:43
Bonjour,
j'ai un petit souci avec mon script php d'importation CSV :
<?php  
$connect = mysql_connect("host","user","pass"); 
mysql_select_db("bdd",$connect);

if ($_FILES[csv][size] > 0) { 

    $file = $_FILES[csv][tmp_name]; 
    $handle = fopen($file,"r"); 
     
    do { 
        if ($data[0]) { 
            mysql_query("INSERT INTO produits2 (idproduit, marques, ref, prix, photo, miniature, processeur, ram, ecran, cartegraph , hdd, lect, divers , divers2, system, garant, poidetautono, fiche, type, date) VALUES 
   (
   '".addslashes($data[0])."', 
   '".addslashes($data[1])."',
   '".addslashes($data[2])."',
   '".addslashes($data[3])."',
   '".addslashes($data[4])."',
   '".addslashes($data[5])."',
   '".addslashes($data[6])."',
   '".addslashes($data[7])."',
   '".addslashes($data[8])."',
   '".addslashes($data[9])."',
   '".addslashes($data[10])."',
   '".addslashes($data[11])."',
   '".addslashes($data[12])."',
   '".addslashes($data[13])."',
   '".addslashes($data[14])."',
   '".addslashes($data[15])."',
   '".addslashes($data[16])."',
   '".addslashes($data[17])."',
   '".addslashes($data[18])."',
   '".addslashes($data[19])."',
   '".addslashes($data[20])."'
   ) 
   
            "); 
        } 
    } while ($data = fgetcsv($handle,1000,",",'"')); 
    // 
 

    //redirect 
    header('Location: import.php?success=1'); die; 

} 

?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd]"> 
<html xmlns="[http://www.w3.org/1999/xhtml]"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Import CSV</title> 
</head> 

<body> 

<?php if (!empty($_GET[success])) { echo "<b>import ok</b><br><br>"; } ?> 

<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1"> 
  fichier: <br /> 
  <input name="csv" type="file" id="csv" /> 
  <input type="submit" name="Submit" value="Submit" /> 
</form> 

</body> 
</html> 


le script fonctionne mais a l'importation les données n'apparaise pas!!!

voici un extrait de mon csv :

NULL,"HP","Envy 4-1260ef","799","uploads/products/HP/ultrabooke-hp-envy-4-1260ef.png","uploads/products/HP/envy1260.png","Intel Core i5-3337U 1,8GHz -< 2.7ghz 3Mo <BR>
Memoire vive 6GO DDR3 <BR>
Intel HD Graphics 4000 partagee<BR>
Ecran 14 pouces 1366 x 768 bright view led<BR>
Disque dur 32 Go mSATA SSD + SATA 500Â Go, 5400Â tr/min <BR>
Lecteur multi carte / Port réseaux / Wifi n / 1 x usb2<BR>
Webcam hd/ HDMI / 2 x usb3 / Beats Audio / bluetooth<BR>
<BR>
WINDOWS 8 64bits<BR>
Autonomie 6h max<BR>
POID : 1.8kg<BR>",,,,,,NULL,,,,,,,"2014-11-12"



EDIT : Ajout des balises de code (jordane)

Merci d'avance
kayajiro
A voir également:

3 réponses

jordane45 Messages postés 38308 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
11 déc. 2014 à 10:06
Bonjour,

le script fonctionne mais a l'importation les données n'apparaise pas!!!

TU veux dire quoi ?
L'import dans La BDD marche .. mais le message sensé t'indiquer que l'import a été réalisé ne s'affiche pas sur ta page ?
Ou bien.. l'import dans la BDD ne fonctionne pas non plus ?


Déjà.. tu as oublié les QUOTES autour du nom de ta variable à cette ligne :
<?php if (!empty($_GET[success])) { echo "<b>import ok</b><br><br>"; } ?> 

Doit s'écrire:
<?php if (!empty($_GET['success'])) { echo "<b>import ok</b><br><br>"; } ?> 


Si le souci concerne l'import également.. tu peux déjà faire des ECHO de tes variables (et surtout de ta requête) et regarder si elles sont conformes.

//Création de la requête
  $sql = "INSERT INTO produits2 ( marques, ref, prix, photo, miniature, processeur, ram, ecran, cartegraph , hdd, lect, divers , divers2, system, garant, poidetautono, fiche, type, date) VALUES 
   (
   '".addslashes($data[1])."',
   '".addslashes($data[2])."',
   '".addslashes($data[3])."',
   '".addslashes($data[4])."',
   '".addslashes($data[5])."',
   '".addslashes($data[6])."',
   '".addslashes($data[7])."',
   '".addslashes($data[8])."',
   '".addslashes($data[9])."',
   '".addslashes($data[10])."',
   '".addslashes($data[11])."',
   '".addslashes($data[12])."',
   '".addslashes($data[13])."',
   '".addslashes($data[14])."',
   '".addslashes($data[15])."',
   '".addslashes($data[16])."',
   '".addslashes($data[17])."',
   '".addslashes($data[18])."',
   '".addslashes($data[19])."',
   '".addslashes($data[20])."'
   ) ";

// Affichage de la requête
echo "<pre> REQUETE : <br>".$sql."</pre>";

//Lancement de la requête
mysql_query($sql)  or die(mysql_error());;



=> Tu lances ton code... tu récupère les requêtes qui vont s'y afficher.. tu les testes en direct dans ta BDD .... tu verras ainsi si elles fonctionnent correctement ..



PS: Si idproduit est bien, comme je le pense, un champ auto-incrémenté.. pas besoin de le mettre... c'est ta BDD qui s'en chargera toute seule.


PS2 : Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
kayajiro Messages postés 58 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 27 janvier 2015
13 déc. 2014 à 04:36
jordane45 merci beaucoup sa fonctionne très bien! !!
0
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
12 déc. 2014 à 22:18
Bonjour,

Dans l'extrait des données CSV, vous avez un retour à la ligne après chaque <br>....

Ca ne peut pas marcher.

Les données en format CSV sont sur une seule ligne par enregistrement, donc pas de retour à la ligne après un <br>

A+
0
kayajiro Messages postés 58 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 27 janvier 2015
13 déc. 2014 à 04:37
Même avec les <br> grâce à jordane45 l'import se fait très bien
0
while ($data = fgetcsv($handle,1000,",",'"'));
changer pour
while ($data = fgetcsv($handle,1000,",",'"'))
0
kayajiro Messages postés 58 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 27 janvier 2015
13 janv. 2015 à 14:43
maintenant quelque peu modifier et utiliser en production.

Tout fonctionne nickel !! Merci a tous
0