Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/06/2008, 11h12   #1
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
Par défaut [CSV] importer un fichier CSV

Bonjour à tous,
voila j'ai un probleme, j'essai d'importer un fichier csv et extraire les données dans une base de données mysql.
Voici mon code

le fichier index.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<form method="post" action="test.php" enctype='multipart/form-data'>
     Pour ajouter ton serveur il suffit de remplir ce formulaire 
     <table width="357" border="0" cellpadding="3" cellspacing="0">
       <!--DWLayoutTable-->
      <tr>
       <td height="28">Fichier :</td> 
       <td colspan="2" valign="top"> <input type="file" name="fichier"> </td> 
       </tr>
      <tr>
        <td></td>  
       <td width="144"> <input type="submit" name="submit" value="Charger !"> </td> 
       <td width="109"></td>
      </tr>
     </table>
    </form>

le fichier test.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
 
<?php
include('connexion.php');
 $fichier=$_FILES['fichier']['name'];
 $fichier=$_FILES['fichier']['tmp_name'];
    $fp = fopen("$fichier","r"); 
 
    while (!feof($fp)){
    $ligne = fgets($fp,4096);
 
     $separateur=";";
     $ligne = fgets($fp,4096);
     $liste = explode("$separateur", "$ligne");
 
     $responsable = $liste[0]; 
     $societe = $liste[1]; 
     $nom = $liste[2]; 
     $prenom = $liste[3]; 
     $fonction = $liste[4]; 
     $telephone = $liste[5]; 
     $fax = $liste[6];       
     $email = $liste[7];              
     $date = date("d-m-Y");
 
$query = "insert into teet(responsable,societe,nom,prenom,fonction,telephone,fax,email,date) values('$responsable','$societe','$nom','$prenom','$fonction','$telephone','$fax','$email','$date')"; 
$result= mysql_query($query); 
 
       if(mysql_error()){ 
           print "Erreur dans la base de données : ".mysql_error();
           print "<br>Importation stoppée.";
           exit();
        } 
       else 
         print "Bien <br>";
     } 
 
     echo "<br>Importation terminée, avec succès."; 
   fclose($fp);
?>
merci d'avance
__________________
Parle peu, et fais beaucoup
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 11h34   #2
Membre éprouvé
 
Avatar de Sayrus
 
Inscription : décembre 2005
Messages : 818
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : décembre 2005
Messages : 818
Points : 456
Points : 456
Quelle est l'erreur générée?
__________________
Solutions pour concessions et garages automobiles =>
http://www.fastback.be
Sayrus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 11h41   #3
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
je vois des champs vide sur la base de données, pas de contenu
__________________
Parle peu, et fais beaucoup
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 13h38   #4
Membre éprouvé
 
Avatar de Sayrus
 
Inscription : décembre 2005
Messages : 818
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : décembre 2005
Messages : 818
Points : 456
Points : 456
un var_dump($liste) donne quoi?
__________________
Solutions pour concessions et garages automobiles =>
http://www.fastback.be
Sayrus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 17h39   #5
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
Voici le code modifié :
index.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<form method="post" action="test.php" enctype='multipart/form-data'>
     Pour ajouter ton serveur il suffit de remplir ce formulaire 
     <table width="357" border="0" cellpadding="3" cellspacing="0">
       <!--DWLayoutTable-->
      <tr>
       <td height="28">Fichier :</td> 
       <td colspan="2" valign="top"> <input type="file" name="fichier"> </td> 
       </tr>
      <tr>
        <td></td>  
       <td width="144"> <input type="submit" name="submit" value="Charger !"> </td> 
       <td width="109"></td>
      </tr>
     </table>
    </form>
test.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
 
<?php
include('connexion.php');
 $fichier=$_FILES['fichier']['name'];
 $fichier=$_FILES['fichier']['tmp_name']; 
 
    $fp = fopen("$fichier","r"); 
 
    while (!feof($fp)){
 
     $separateur=";";
     $ligne = fgets($fp,4096);
     $liste = explode("$separateur", "$ligne");
     //$liste = explode( ";",$ligne);  
    //echo var_dump($liste);
 
 
     $responsable = $liste[0]; 
     $societe = $liste[1]; 
     $nom = $liste[2]; 
     $prenom = $liste[3]; 
     $fonction = $liste[4]; 
     $telephone = $liste[5]; 
     $fax = $liste[6];       
     $email = $liste[7];              
     $date = date("d-m-Y");
 
$responsable=str_replace("'","`","$responsable");
$societe=str_replace("'","`","$societe");
$nom=str_replace("'","`","$nom");
$prenom=str_replace("'","`","$prenom");
$fonction=str_replace("'","`","$fonction");
$telephone=str_replace("'","`","$telephone");
$fax=str_replace("'","`","$fax");
$email=str_replace("'","`","$email");
 
 
$query = "insert into teet(responsable,societe,nom,prenom,fonction,telephone,fax,email,date) values('$responsable','$societe','$nom','$prenom','$fonction','$telephone','$fax','$email','$date')"; 
$result= mysql_query($query); 
 
       if(mysql_error()){ 
           print "Erreur dans la base de données : ".mysql_error();
           print "<br>Importation stoppée.";
           exit();
        } 
       else 
         print "Bien <br>"; 
     } 
     echo "<br>Importation terminée, avec succès.";
   fclose($fp);
?>
__________________
Parle peu, et fais beaucoup
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 19h53   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Est-ce déjà ?

Sinon, je me permets de te suggérer d'utiliser les fonctions natives PHP pour le traitement de fichiers CSV, par exemple : http://php.net/fgetcsv
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h55.


 
 
 
 
Partenaires

Hébergement Web