Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1542 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu]Lecture d'un fichier csv

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu]Lecture d'un fichier csv

n°1853701
toughzaa
Posté le 21-02-2009 à 11:56:53  profilanswer
 

Bonjour
 
Voila, lors de la lecture d'un fichier csv je voudrais que les données soient affichées par colonne et non pas par ligne pour que je puisse par ce biais additionner les colonnes entre elles et pouvoir mettre des tables valables (pour moi) sous sql
 
Voila la portion de code :
 
 

Code :
  1. $ARRAY[0]=fgetcsv($FILE,1024,$separateur);      // lire ligne par ligne => doit etre "lire colonne par colonne"
  2. $width=sizeof($ARRAY[0]);


 
 
Et mon tableau csv est de la forme :
 

Code :
  1. Varibable 1                     VAR 2                  VAR3                     VAR4
  2.     34                          33                       65                       90
  3.     55                          45                       65                       43


ect ...


Message édité par toughzaa le 25-02-2009 à 11:47:43
mood
Publicité
Posté le 21-02-2009 à 11:56:53  profilanswer
 

n°1853876
art_dupond
je suis neuneu... oui oui !!
Posté le 22-02-2009 à 05:07:04  profilanswer
 

Tu peux pas récupérer les colonnes à partir des lignes :??:
 
Truc du genre
 

Code :
  1. $data = fgetcsv($FILE,1024,$separateur);
  2. $somme_var1 = 0;
  3. while (($data = fgetcsv($FILE,1024,$separateur)) !== FALSE) {
  4.    $somme_var1 += $data[0];
  5.    ...
  6.    $query = "INSERT INTO repose_miam_miam (col1,col2,...) VALUES ($data[0], $data[1],...)";
  7.    ...
  8. }


---------------
oui oui
n°1853885
toughzaa
Posté le 22-02-2009 à 11:11:33  profilanswer
 

Merci pour votre réponse
Cependant, comment récupérer le nom des colonnes sachant que ceux sont la première ligne donc $data[0]..
J'ai pensé à inclure les données du fichier csv dans la base en pouvant les manipuler plus facilement comme en les triant ... : le nom de la table correspond au nom du fichier csv, et les champs correspondant aux colones
Pouvez-vous donc m'adapter l'instruction sql insert into ?
Encore merci

n°1853909
art_dupond
je suis neuneu... oui oui !!
Posté le 22-02-2009 à 13:47:32  profilanswer
 

dans mon code, $data[0] n'est pas la première ligne mais la première colonne de la ligne en cours.

 

le nom des colonnes est donné par la première ligne du fichier, donc par le premier appel à la fonction (ligne 1).

 

change juste le nom de la variable ($data -> $champs)


Message édité par art_dupond le 22-02-2009 à 13:49:56

---------------
oui oui
n°1854075
toughzaa
Posté le 23-02-2009 à 11:07:51  profilanswer
 

et la ligne sous la colonne $data[0] correspond à $data[1] ?
Et pour l'instruction sql, ne pouvons savoir combien il y a de colonnes, n'y a t'il une fonction qui inclut toutes les colonnes quels que soient leur nombre ?

n°1854380
toughzaa
Posté le 23-02-2009 à 21:57:32  profilanswer
 

Up

n°1854669
toughzaa
Posté le 24-02-2009 à 15:51:21  profilanswer
 

Merci art_dupond j'ai pu créé la table ainsi que les différents colonnes en tant que champs
Maintenant, l'inclusion pose problème : je ne peux pas utiliser une boucle. De plus, même connaissant le nombre de colonnes, je ne sais comment faire
 

Code :
  1. INSERT INTO $nom_de_la_table VALUES ($LA_CA_POSE_PROBLEME)


Message édité par toughzaa le 24-02-2009 à 16:01:12
n°1854927
art_dupond
je suis neuneu... oui oui !!
Posté le 25-02-2009 à 11:36:51  profilanswer
 

yop,
 
 
tu pourrais créer ta chaine par pitits bouts ?
 
 

Code :
  1. $strChamps = $champs[0];
  2. for(int $i=1;$i<count($champs);$i++)
  3. {
  4.    $strChamps.= ','.$champs[$i];
  5. }


 
maintenant, $strChamps contient nomColonne1,nomColonne2,...
 
 
 
idem pour les valeurs dans la boucle,
 
puis (toujours dans la boucle)
 

Code :
  1. $query = "INSERT INTO repose_miam_miam (".$strChamps." ) VALUES (".$strValues." )";


---------------
oui oui
n°1854933
toughzaa
Posté le 25-02-2009 à 11:48:38  profilanswer
 

Merci beaucoup art_dupond


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu]Lecture d'un fichier csv

 

Sujets relatifs
[résolu]lecture d'un fichier créé [JSP/JAVA][Résolu] lecture fichier ruby!
Simple lecture de fichier... [ RESOLU ][Résolu] Lecture dans un fichier avec GetPrivateProfileString
[Ocaml] lecture d'un fichier texte de > 50 Mo (resolu)[résolu]Problème avec ExecuteExcel4Macro....
[Résolu]Lecture de fichier qui lit que le premier caractère[résolu] lecture des informations d'un fichier
[Resolu] Bug de lecture de fichier : encodageErreur de lecture fichier SQL [résolu]
Plus de sujets relatifs à : [Résolu]Lecture d'un fichier csv


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR