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 [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut Export csv
    Bonjour,
    je suis encore débutant en php / mySQL, alors merci d'excuser par avance cette question, surement stupide, mais qui me bloque :

    J'ai un script php qui extrait les données d'une table MySQL. Les données sont censées alimenter un fichier CSV.
    Voila mon code :

    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
    <?
    $req = mysql_query($sql, $db) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    header("Content-Type: application/msexcel");   
    header("Content-disposition: filename=table.csv");   
     
    if (mysql_num_rows($req) != 0) {   
    // titre des colonnes   
    $fields = mysql_num_fields($req);   
    $i = 0;   
    while ($i < $fields) {   
    echo mysql_field_name($req, $i).";";   
    $i++;   
    }   
    echo "\n";   
     
    // données de la table   
    while ($data = mysql_fetch_array($req, MYSQL_ASSOC)) {   
    foreach($data as $value) {   
    echo "$value;";   
    }   
    echo "\n";   
    }   
    }   
     
    // on ferme la connexion à mysql 
    mysql_close($db);
    return(0);
    }
    ?>
    Mon probleme : le script affiche les données de la table dans la page ou le script est exécuté, au lieu de les stocker dans un fichier csv

    Ma question : Ou est physiquement sur le serveur ce fichier CSV ? Faut-il faire un lien pour le telecharger ?

    Merci d'avance de vos réponses.

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    la ton code ne genere aucun fichier..... il va deja falloir mettre les valeurs dans une variable :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // données de la table   
    while ($data = mysql_fetch_array($req, MYSQL_ASSOC)) {   
    foreach($data as $value) {   
    $contenu .= $value.";" ;   
    }   
    $contenu .="\n";   
    }   
    }

    et injecter $contenu dans un fichier !
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $fp = fopen("fichier.csv","w+");
    fseek($fp,0);                     // 4.On se place en début de fichier
    fputs($fp,$contenu);            // 5.On écrit dans le fichier 
    fclose($fp);

    Allez dans mon elan je te lache le code pour ecrire dans le fichier
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  4. #4
    Membre averti
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut
    Merci a toi. Je teste ca de suite

  5. #5
    Membre averti
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut
    Merci bcp, ca marche parfaitement.

  6. #6
    Membre averti
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut euh... encore une question
    Ton code marche parfaitement. Le probleme qui reste c'est que les intitulés de colonne continuent a s'afficher dans la page, a cause de ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (mysql_num_rows($req) != 0) {
    // titre des colonnes
    $fields = mysql_num_fields($req);
    $i = 0;
    while ($i < $fields) {
    echo mysql_field_name($req, $i).";";
    $i++;
    }
    echo "\n";
    J'ai donc voulu les stocker dans une variable et l'ecrire ensuite dans le CSV, mais ca ne marche pas, ca créée un csv vide.

    Voila le code que j'ai ecrit :
    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
    if (mysql_num_rows($req) != 0) {
    // titre des colonnes
    $fields = mysql_num_fields($req);
    $i = 0;
    while ($i < $fields) {
    $intitules .= mysql_field_name($req, $i).";";
    $i++;
    }
    $intitules .= "\n";
     
    // données de la table   
    while ($data = mysql_fetch_array($req, MYSQL_ASSOC)) {   
    foreach($data as $value) {   
    $contenu .= $value.";" ;   
    }   
    $contenu .="\n";   
    }
    $fp = fopen("table.csv","w+");
    fseek($fp,0); // 4.On se place en début de fichier
    fputs($fp,$intitules,$contenu); // 5.On écrit dans le fichier 
    fclose($fp);
    }
    j'ai du rater quelque chose ?

  7. #7
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $contenu = $intitules.$contenu
    $fp = fopen("table.csv","w+");
    fseek($fp,0); // 4.On se place en début de fichier
    fputs($fp,$contenu); // 5.On écrit dans le fichier 
    fclose($fp);
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  8. #8
    Membre averti
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut
    ah bah oui la ca marche ! mille mercis

  9. #9
    Membre averti
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut
    juste une précision pour ceux qui voudraient reutiliser ce code telquel : RideKick dans sa derniere réponse a oublié le point virgule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $contenu = $intitules.$contenu;
    $fp = fopen("table.csv","w+");
    fseek($fp,0); // 4.On se place en début de fichier
    fputs($fp,$contenu); // 5.On écrit dans le fichier 
    fclose($fp);

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

Discussions similaires

  1. [ACCESS 2003]Export .csv
    Par guiguikawa dans le forum Access
    Réponses: 6
    Dernier message: 23/06/2006, 10h56
  2. Export CSV
    Par LeCaméléon dans le forum XMLRAD
    Réponses: 3
    Dernier message: 18/04/2006, 14h32
  3. [EXPORT] CSV
    Par sleepy2002 dans le forum Oracle
    Réponses: 2
    Dernier message: 03/04/2006, 10h14
  4. Export CSV
    Par lapartdombre dans le forum Documents
    Réponses: 12
    Dernier message: 17/10/2005, 14h46
  5. Export CSV de champs qui contiennent des ";"
    Par boteha dans le forum Outils
    Réponses: 4
    Dernier message: 19/09/2005, 19h05

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