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 -> SQL valeurs en double dans un export CSV ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    responsable RH
    Inscrit en
    Janvier 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : responsable RH
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2016
    Messages : 28
    Points : 17
    Points
    17
    Par défaut php -> SQL valeurs en double dans un export CSV ?
    bonjour,

    je voudrai exporter des données SQL pour les récupérer dans un fichier CSV afin de les traiter sur LibreOffice ou Excel.

    Le fichier export.csv crée par le PHP me renvoie toutes les données en double !
    Comment faire pour résoudre ce problè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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <!DOCTYPE html>
    <html>
    <head>
    <title>CSV</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8">
    <meta http-equiv="content-style-type" content="text/css">
    </head>
    <body>
     
    <?php
     
    $bdd = new PDO('mysql:host=127.0.0.1;dbname=pouest', 'root', 'root');
     
    $sth = $bdd->prepare('SELECT * FROM chat ORDER BY id DESC LIMIT 0,10');
    $sth->execute();
     
    /* Récupération de toutes les lignes d'un jeu de résultats */
    print("Récupération de toutes les lignes d'un jeu de résultats :\n");
    $list = $sth->fetchAll();
    $fp = fopen("export.csv", "w");
     
     
    foreach($list as $fields) {
     
    /* enregistrer les valeurs dans le fichier CSV */
    fputcsv($fp, $fields);
     
    /* ecrire à l'écran les valeurs du CHAT */
    echo "<br>".$fields['id']." ".$fields['pseudo']." ".$fields['message'];
     
    }
     
    fclose($fp);
     
    ?>
     
    </body>
    </html>
    résultat à l'intérieur du fichier CSV :
    29 29 jfab jfab bonjour louis bonjour louis 04/03 à 10:02 04/03 à 10:02
    28 28 jfab jfab ss ss 26/02 à 07:37 26/02 à 07:37
    27 27 jfab jfab kdfjd kdfjd 25/02 à 11:39 25/02 à 11:39
    26 26 pop pop bonjour bonjour 25/02 à 11:07 25/02 à 11:07
    25 25 jfab jfab ss ss 25/02 à 07:38 25/02 à 07:38
    24 24 jfab jfab d d 25/02 à 07:38 25/02 à 07:38
    23 23 jfab jfab zzz zzz 25/02 à 07:37 25/02 à 07:37
    22 22 jfab jfab ddd ddd 25/02 à 07:36 25/02 à 07:36
    21 21 jfab jfab test test 22/02 à 17:09 22/02 à 17:09
    20 20 jfab jfab sss sss le 22/02 à 17:05 le 22/02 à 17:05

  2. #2
    Membre à l'essai
    Homme Profil pro
    responsable RH
    Inscrit en
    Janvier 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : responsable RH
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2016
    Messages : 28
    Points : 17
    Points
    17
    Par défaut
    j'ai pu résoudre un problème à ma question mais j'ai crée un autre problème :

    en rajoutant la ligne ci dessous, je n'ai plus les doublons dans mon fichier CSV mais 'echo' ne m'affiche plus les résultats dans le navigateur ?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_NUM);

  3. #3
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Stop, stop, stop...
    Demande toi plutôt Pourquoi tu récupères tout en double : ce n'est ni la faute à SQL, ni la faute à CSV...
    C'est du au fait que tu choisis fetchall sans param en PHP : Regarde les exemples sur cette page, tu comprendras tout de suite d'où vient ton problème... et comment le résoudre.

    http://php.net/manual/fr/pdostatement.fetchall.php
    Récupération de toutes les lignes d'un jeu de résultats :
    Array
    (
    [0] => Array
    (
    [nom] => pear
    [0] => pear
    [couleur] => green
    [1] => green
    )

    [1] => Array
    (
    [nom] => watermelon
    [0] => watermelon
    [couleur] => pink
    [1] => pink
    )

    )
    Pour que ce soit encore plus facile : ajoute ceci pour débugger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $list = $sth->fetchAll();
    echo '<pre>';
    print_r($list);
    echo '</pre>';
    $list = $sth->fetchAll(PDO::FETCH_ASSOC);
    echo '<pre>';
    print_r($list);
    echo '</pre>
     
    ';
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

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

Discussions similaires

  1. [AC-2010] Pas de valeurs en double dans Access.
    Par fab.85 dans le forum Access
    Réponses: 4
    Dernier message: 29/11/2013, 19h32
  2. Requete SQL : Valeur par defaut dans un SELECT
    Par Wiwi31 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/06/2012, 23h44
  3. [XL-2010] MFC par macro sur valeurs en double dans 2 colonnes + rassemblement doublons.
    Par FIMO7 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/03/2011, 20h32
  4. [XL-2010] MFC par macro sur valeurs en double dans 2 colonnes
    Par FIMO7 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/03/2011, 00h09
  5. javascript/php:recuperer une valeur de select dans une meme page dans une var php
    Par hraiwen dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 21/03/2009, 14h12

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