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 :

Exporter le résultat d'une requête en CSV [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 16
    Points : 10
    Points
    10
    Par défaut Exporter le résultat d'une requête en CSV
    Bonjour,

    Voilà, j'ai récupéré un script afin d'exporter le résultat d'une requête MySQL sous forme de fichier CSV, cependant, il ne fonctionne pas et je ne comprend pas pourquoi.

    Voici le 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <?php
    include("header.php");
     
    // Connexion MySQL
    require_once('connection.php');
     
    // la variable qui va contenir les données CSV
    $outputCsv = '';
     
    // Nom du fichier final
    $fileName = "parrainage_";
    $fileName .= date('Y-m-d_H:i:s');
    $fileName .= ".csv";
     
    // on crée la requête SQL
    $sql = 'SELECT * FROM `ps_customer`';
     
    // on envoie la requête
    $req = mysql_query($sql) or die('Erreur SQL !<br>' . $sql . '<br>' . mysql_error());
    if (mysql_num_rows($sql) > 0) {
        $i = 0;
     
        while ($Row = mysql_fetch_assoc($sql)) {
            $i++;
     
            // Si c'est la 1ère boucle, on affiche le nom des champs pour avoir un titre pour chaque colonne
            if ($i == 1) {
                foreach ($Row as $clef => $valeur)
                    $outputCsv .= trim($clef) . ';';
     
                $outputCsv = rtrim($outputCsv, ';');
                $outputCsv .= "\n";
            }
     
            // On parcours $Row et on ajout chaque valeur à cette ligne
            foreach ($Row as $clef => $valeur)
                $outputCsv .= trim($valeur) . ';';
     
            // Suppression du ; qui traine à la fin
            $outputCsv = rtrim($outputCsv, ';');
     
            // Saut de ligne
            $outputCsv .= "\n";
     
        }
     
    } else
        exit('Aucune donn&eacute;e &agrave; enregistrer.');
     
    // Entêtes (headers) PHP qui vont bien pour la création d'un fichier Excel CSV
    header("Content-disposition: attachment; filename=" . $fileName);
    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 $outputCsv;
    exit();
    ?>
    Il m'affiche toujours "Aucune donnée à enregistrer".

    Si quelqu'un peut m'aider, je lui en serais reconnaissant.

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    mysql_num_rows attend une ressource et non du texte, il faut donc que tu fasses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (mysql_num_rows($req) > 0)
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (mysql_num_rows($sql) > 0)
    IDEM pour le mysql_fetch_assoc d'ailleurs.
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Effectivement, ça fonctionne beaucoup mieux comme ça, merci beaucoup pour ton aide

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/03/2012, 09h56
  2. Réponses: 4
    Dernier message: 15/08/2008, 12h43
  3. Réponses: 8
    Dernier message: 28/09/2006, 15h56
  4. Réponses: 1
    Dernier message: 25/07/2006, 16h55
  5. Exportation du résultat d'une requête
    Par soso78 dans le forum Access
    Réponses: 1
    Dernier message: 27/11/2005, 21h02

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