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 :

Lire et écrire facilement des fichiers CSV


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    électronicien
    Inscrit en
    Octobre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : électronicien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 225
    Par défaut Lire et écrire facilement des fichiers CSV
    Bonjour. J'expérimente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $csv = new SplFileObject(EXPORT_CSV, 'w');  
     $csv->fputcsv($T_row, ';');
    -------------------------------------------------------------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        while($T_= mysql_fetch_array($DBexport)){
             $T_row .= ';'. $T_;
    ------------------------------------------------------------------------------------------

    Mais la sortie me donne bien le fichier mais à 0octet.
    Par où peut on afficher les message d'erreurs. Merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Comment s'articulent les deux bouts de code que tu nous montres ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Homme Profil pro
    électronicien
    Inscrit en
    Octobre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : électronicien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 225
    Par défaut
    Pour plus de clarté, le voici en entier.
    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
     
        $sql= read_var('sql') ;
     
        $DBexport= mysql_query($sql);
        if(!$DBexport){ jsalert("Erreur mysql: Revoir la variable sql !");
                 debug("export:  mysql_query(sql) a échoué ABORT");
                return false; 
        }
     
        $T_row  = mysql_field_array($DBexport);
        while($T_= mysql_fetch_array($DBexport)){
             $T_row .= ';'. $T_; 
         //    print 'row: '.implode(' ',$T_)."<br>";
        }
     
         $csv = new SplFileObject(EXPORT_CSV, 'w');  // voir http://www.mon-code.net/article/49/lire-et-ecrire-facilement-des-fichiers-csv-avec-la-spl-de-php5
        $csv->setCsvControl(';', '"', '"');
        $csv->fputcsv($T_row, ';');   
     
     
        jsalert("Exportation ".EXPORT_CSV." terminée.");
     
        debug("export ".EXPORT_CSV."  FIN");
    La fonction debug est une invention à moi. Je peux ainsi tracer le suivi du programme dans un fichier à part.

  4. #4
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $T_row  = mysql_field_array($DBexport);
    while($T_= mysql_fetch_array($DBexport)){
    Tu es sûr de la 1ere fonction ?

    La fonction SplFileObject:: fputcsv prend un tableau en paramètre mais $T_row est une chaine. Donc m'est avis que ça va pas bien marcher
    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]

  5. #5
    Membre éclairé
    Homme Profil pro
    électronicien
    Inscrit en
    Octobre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : électronicien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 225
    Par défaut
    oups: mysql_field_array n'existe pas.
    mysql_field_name qui existe est qui génère une string.
    Merci beaucoup pour le dépannage... C'est terrible de débuter.

  6. #6
    Membre éclairé
    Homme Profil pro
    électronicien
    Inscrit en
    Octobre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : électronicien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 225
    Par défaut
    J'ai progressé... mais j'ai tout sur une ligne. Il me faudrait faire maintenant une matrice dynamiquement mais quand j'essaie j'ai des array;array;array;array; en sortie de $T_result

    Code php : 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
        // insertion des titres de colonnes
        while($field = mysql_field_name($DBexport,$i++)){
            $T_row[]  = $field;
        }
        $T_result[][]=$T_row;
     
     
        // insertion du contenu des colonnes
        while($row= mysql_fetch_row($DBexport)){
            foreach($row as $ligne) {
                $T_row[]  = $ligne;            
            }
        $T_result[][]=$T_row;
        }
     
        mysql_free_result($DBexport);
     
     
        $csv = new SplFileObject(EXPORT_CSV, 'w');  // voir http://www.mon-code.net/article/49/lire-et-ecrire-facilement-des-fichiers-csv-avec-la-spl-de-php5
        $csv->setCsvControl(';', '"', '"');
        $csv->fputcsv($T_row, ';');

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

Discussions similaires

  1. Lire des fichiers csv directement dans Excel
    Par thierryppp dans le forum VBScript
    Réponses: 6
    Dernier message: 17/09/2011, 14h05
  2. lire et écrire dans des fichiers différents
    Par jane40 dans le forum MATLAB
    Réponses: 13
    Dernier message: 13/01/2009, 21h30
  3. [FTP] Lire et écrire dans un fichier
    Par dj-julio dans le forum Langage
    Réponses: 49
    Dernier message: 12/01/2006, 11h59
  4. [Rech. Comp.] Lire et écrire dans des fichiers XML
    Par Rodrigue dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/08/2005, 20h48

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