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 :

PHP ==> Excel, CSV


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 33
    Par défaut PHP ==> Excel, CSV
    Bonjour a tous,

    Je me retrouve un peut coincer a l'heure actuelle.
    Je souhaiterais pouvoir exporter des données de ma BD vers un fichier CSV.
    Pour cela j'ai commencer à suivre un tuto plutot bien expliquer, j'arrive a créer le fichier csv, mais je doit avoir un problème dans ma requête.
    Impossible d'obtenir plus d'une valeur !

    Voici le code actuel:
    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
    <?php
    header('Content-Type: text/csv;');
    header('Content-Disposition: attachment; filename="test.csv"');
     
    // This is an example of config.php
    $dbhost = '****';
    $dbuser = '****';
    $dbpass = '****';
    $dbname = '****';
     
    // This is an example opendb.php
     
    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
    mysql_select_db($dbname);
     
    $req=mysql_query("SELECT id_formation, titre_formation, cout FROM form_formations");
     
    $data=mysql_fetch_array($req);
     
    print_r($data);
    ?>"Id";"Titre";"Cout"<?php
     
    foreach($data as $d){
     
    echo "\n".'"'.$d->id_formation.'";"'.$d->titre_formation.'";"'.$d->cout.'"';
    }
    ?>
    Merci d'avance.

  2. #2
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    [EDIT] Je viens de regarder le tuto, j'avais trouvé tout seul la réponse à ma question^^

    Bref, mysql_fetch_array retourne qu'une seule ligne du tableau de résultats (cf. ici pour la solution).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 33
    Par défaut
    cette ligne sert à mettre un titre sur les colonnes dans le fichier excel.

  4. #4
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    J'ai édité mon message précédent avant de voir ta réponse

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 33
    Par défaut
    xD no problème, par contre t'a pas d'idée au niveau de la requête ?

  6. #6
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Impossible de se connecter : " . mysql_error());
    mysql_select_db("mydb");
     
    $result = mysql_query("SELECT id, name FROM mytable");
     
    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
       printf("ID : %s  Nom : %s", $row[0], $row[1]);
    }
     
    mysql_free_result($result);
    ?>
    Exemple tiré de la doc PHP de la fonction : http://www.php.net/manual/fr/functio...etch-array.php
    Ceci étant, la fonction que tu utilises est obsolète, pourquoi ne pas utiliser les PDO comme dans le tuto qui te sert de base ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 33
    Par défaut
    Parce que malheureusement je ne peux pas, a mon taff on n'utilise pas PDO et je ne peux pas changer cela,
    Par contre je ne vois pas bien le probleme du coup dans mon code, je devrais remplacer mysql_fetch_array par mysqli_result::fetch_array ?

  8. #8
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $req=mysql_query("SELECT id_formation, titre_formation, cout FROM form_formations");
    while($data=mysql_fetch_array($req, MYSQL_NUM)){
    echo $data['id_formation'];
    }
    Est-ce que ça fonctionne si tu remplace ton foreach par une boucle while comme celle là ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 33
    Par défaut
    nop j'ai toujours la même chose dans mon fichier:


    Array
    (
    [0] => 1
    [id_formation] => 1
    [1] => Formation des anciens 2012 / 2013
    [titre_formation] => Formation des anciens 2012 / 2013
    [2] => 200
    [cout] => 200
    )
    Id Titre Cout

  10. #10
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Et tu es certain que la requête SQL renvoie plusieurs lignes de résultats ?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 33
    Par défaut
    Mlaheuresement non, j'en suis pas sure du tout, d'habitude sa fonctionne mais comme quoi j'ai pas du faire comme d'hab -_-'

  12. #12
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Tu ne peux pas tester uniquement le SQL ? ou vérifier "manuellement" qu'il y a plusieurs lignes dans la table form_formations ?

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 33
    Par défaut
    La requête SQL en elle même fonctionne je viens de la tester sur la BD en directe et en résultat j'ai bien plusieurs lignes. Donc sa viens pas de la,
    je dirais que ya un probleme a ce niveau je crois:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $data=mysql_fetch_array($req);
     
    print_r($data);

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 33
    Par défaut
    Probleme Solved , si sa intéresse quelqu'un , c'est un peu obsolète mais sa fonctionne quand même !

    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
     
    <?php
    header('Content-Type: text/csv;');
    header('Content-Disposition: attachment; filename="test.csv"');
     
    // This is an example of config.php
    $dbhost = '*****';
    $dbuser = '*****';
    $dbpass = '*****';
    $dbname = '*****';
     
    // This is an example opendb.php
    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
    mysql_select_db($dbname);
     
    $req=mysql_query("SELECT id_formation, titre_formation, cout FROM form_formations");
     
     
     
    ?>"Id";"Titre";"Cout"<?php
     
    for ($i=0;$i<mysql_num_rows($req);$i++){
     
    echo "\n".'"'.mysql_result($req,$i,"id_formation").'";"'.mysql_result($req,$i,"titre_formation").'";"'.mysql_result($req,$i,"cout").'"';
     
    }
     
     
    ?>

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

Discussions similaires

  1. [Librairies] générer un .csv en php pour excel
    Par allowen dans le forum Langage
    Réponses: 3
    Dernier message: 14/12/2005, 16h40
  2. [PEAR][Spreadsheet] PHP/EXPORT EXCEL : nombre de formats de cellule différents !
    Par joe_le_mort dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 27/10/2005, 17h21
  3. Exporter des données d'un requete SQL vers excel (csv)
    Par PrinceMaster77 dans le forum ASP
    Réponses: 9
    Dernier message: 08/10/2005, 22h28
  4. [Excel] Excel et csv
    Par gledoux dans le forum Bibliothèques et frameworks
    Réponses: 16
    Dernier message: 01/08/2005, 14h45
  5. Import Excel / CSV
    Par aston_max dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 04/07/2004, 23h31

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