IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Fusion de csv


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Par défaut Fusion de csv
    Bonjour à tous
    Grâce au script suivant, je parviens à afficher le contenu de 2 csv dans un seul tableau html.
    Déjà bien pour mes maigres compétences!!!
    Mais en fait, je voudrais pouvoir fusionner les 2 csv pour les afficher triés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php 
    $CLTP1 = "CLTP1.csv"; 
    $p1 = fopen($CLTP1, 'rb');
    $CLTP2 = "CLTP2.csv"; 
    $p2 = fopen($CLTP2, 'rb');  
     
     echo "<table border=1>"; 
     
    for ($ligne = fgetcsv($p1, 1024, ","); !feof($p1); $ligne = fgetcsv($p1, 1024, ",")) {
     array_pop($ligne); 
      echo '<tr>';
      $j = sizeof($ligne);
      for ($i = 0; $i < $j; $i++) {
        echo "<td>$ligne[$i]</td>";
        }
      echo "</tr>";
      }				  
     
     for ($ligne = fgetcsv($p2, 1024, ","); !feof($p2); $ligne = fgetcsv($p2, 1024, ",")) {	 
     array_pop($ligne);
      echo '<tr>';
      $j = sizeof($ligne);
      for ($i = 0; $i < $j; $i++) {
        echo "<td>$ligne[$i]</td>";
        }
      echo "</tr>";
      }		
     
    echo "</table>\n";
     ?>

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    fusionner mais comment ?

    ps : c'est pas sizeof mais count, et pour parcourir un array c'est pas for mais foreach

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Si je comprends bien, tu veux afficher le contenu, fusionné et trié sur un certain paramètre, de tes deux fichiers CSV dans un tableau HTML.
    Bêtement, j'aurais tendance à mettre le contenu des deux fichiers dans un gros array php et faire un sort (ou un usort) dessus.

    Pour compléter le ps de stealth35, pour parcourir le fichier j'utiliserai plutôt while($ligne = fgetcsv($p1, 1024, ",")) et foreach pour lire les éléments de la ligne.

    @stealth35 : sizeof est un alias de count, donc logiquement ça doit fonctionner aussi (cela dit, moi aussi je préfère utiliser count)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Par défaut
    Oui Celira, tu as parfaitement compris mon problème.
    Mais vu mes faibles connaissances en PHP, je ne sais pas comment m'y prendre....

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut

    Comment ajouter un élément à un tableau ?
    Comment trier un tableau multidimensionnel sur ses deuxième et troisième colonnes ?
    et
    PHP : Le tutoriel pour grands débutants pressés

    L'idée c'est :
    1. créer un array vide $fusion
    2. parcourir le premier fichier (avec while et fgetcsv) et mettre chaque ligne dans $fusion
    3. parcourir le second fichier (avec while et fgetcsv) et mettre chaque ligne dans $fusion
    4. trier $fusion avec une fonction de tri
    5. parcourir $fusion (avec foreach) et afficher les lignes
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Par défaut
    Merci Celira pour ton plan de travail.
    Voici une première approche, qui bien sûr ne fonctionne pas....
    Pardon pour la non-coloration du code, mais les boutons sont désactivés
    Dur, dur le PHP à 60 ans !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?php
    $fusion = array("licence", "nom", "prénom"); // tableau vide
     
     // traitement du 1er csv
    	$CLTP1 = "CLTP1.csv"; 
    	$p1 = fopen($CLTP1, 'rb'); 
    	while (($ligne = fgetcsv($p1, 1000, ",")) !== FALSE) {
     	array_push($fusion, $ligne);
     	}
     
     // traitement du 2ème csv
     	$CLTP2 = "CLTP2.csv"; 
    	$p2 = fopen($CLTP2, 'rb'); 
    	while (($ligne = fgetcsv($p2, 1000, ",")) !== FALSE) {
     	array_push($fusion, $ligne);
     	}
     
     // lecture simple de la fusion des 2 csv
      	foreach($fusion as $ligne)   {     
       	echo $ligne ,'<br/>';  }
     
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fusion Fichiers CSV
    Par Geoffroy123 dans le forum Visual C++
    Réponses: 2
    Dernier message: 26/02/2010, 15h19
  2. Fusion de fichier csv
    Par malox dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 26/05/2008, 12h19
  3. Fusion de fichiers .csv et comparaison avec fichier .xls
    Par GourenBZH dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/04/2008, 14h15
  4. [CSV] Ajout/fusion de valeurs de fichiers csv
    Par dcanl dans le forum Langage
    Réponses: 2
    Dernier message: 24/01/2007, 09h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo