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

PHP & Base de données Discussion :

Export CSV de plusieurs fichiers


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 178
    Points : 56
    Points
    56
    Par défaut Export CSV de plusieurs fichiers
    Bonjour,

    Je souhaite créer une moulinette pour extraire plusieurs fichiers CSV. Pour faire court, j'ai une table Mysql qui contient les noms, prénoms et clubs de chaque joueurs de foot.

    J'ai une seconde table avec uniquement les noms de clubs. Dans mon code PHP j'ai ceci en vous rappelant que j'ai enlever des parties pour aller à l'essentielle. J'ai donc omis ici toute la partie de création des lignes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    $allClubs = $model->getAllClubs();
     
    foreach($allClubs as $donnees){
     
       $club = $donnees["club"];
       $joueurs = $model->getAllJoueursByClub($club);
       $export = $model->exportCSV($club,$joueurs);
     
    }
    Dans mon modèle, la méthode exportCSV est la suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public function exportCSV($club,$joueurs){
    	
    		header("Content-disposition: attachment; filename=".$club);
    		header("Content-Type: application/force-download");
    		header("Content-Transfer-Encoding: application/vnd.ms-excel\n");
    		header("Pragma: no-cache");
    		header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
    		header("Expires: 0");
    		echo"$joueurs";
    		exit();
    	
    	}
    Lorsque je lance le script, si je laisse exit(); dans le modèle, j'ai un seul fichier générer mais avec juste les données du premier club. Lorsque je retire le exit(); j'ai un seul fichier mais avec tous les joueurs de tous les clubs.

    Hors ce que je souhaiterais c'est que le script me génère autant de fichier que j'ai de clubs.

    Je n'arrive pas à contourner ce soucis de l'exit car il me semble que c'est lui qui permet de boucler le fichier. Hors j'ai l'impression que si on le laisse il boucle le premier fichier mais arrête tout le script donc empêche la génération des autres fichiers.

    Merci pour tout aide

  2. #2
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    faut faire une archive, zip ou tar

  3. #3
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 178
    Points : 56
    Points
    56
    Par défaut
    C'est à dire ?

  4. #4
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    tu peux pas envoyer plusieurs fichier en même temps, par contre tu peux faire un fichier qui contient plusieurs fichier : une archive

  5. #5
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 178
    Points : 56
    Points
    56
    Par défaut
    Je n'arrive pas à comprendre en quoi le fait de demander un zip en sortie va me permettre de générer plusieurs fichiers en même temps puisque ce qui pose problème c'est justement la génération de ces fichiers. Le script fabrique bien le CVS mais quand je le place dans une boucle pour qu'il m'en produise plusieurs, il m'en sort toujours qu'un puis s'arrête ! Par contre dès que je vire le exit, il m'en sort également un mais avec toutes les données pour chaque club !

    Mais bon je vais chercher dans ce sens. Merci

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 139
    Points : 171
    Points
    171
    Par défaut
    C'est tout à fait normal.

    Dans ta fonction, tu spécifies les entêtes et tu fais un echo du contenu. Ton exit() casse le foreach(). Comme tu ne le casses pas en le retirant, la fonction re-spécifie x fois les entêtes et continue d'agréger dans le flux de sortie le contenu et lorsque le traitement est terminé et qu'il est temps d'envoyer au client le résultat il envoi la totalité du flux en spécifiant les entêtes.

Discussions similaires

  1. [Toutes versions] Ventiler mon fichier .csv en plusieurs fichiers .csv
    Par X.e.N.o.N dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/07/2018, 05h11
  2. Réponses: 2
    Dernier message: 26/05/2015, 13h59
  3. Réponses: 4
    Dernier message: 06/02/2014, 09h06
  4. Convertir CSV en plusieurs fichiers HTML
    Par lmplmp dans le forum Débuter
    Réponses: 6
    Dernier message: 07/06/2012, 16h56
  5. exporter cellules de plusieurs fichiers sur un seul fichier
    Par sapeur37 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/11/2006, 09h46

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