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 données mysql vers un fichier txt [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut Exporter données mysql vers un fichier txt
    Bonjour,

    je dois récupérer au niveau de mon application des données afin de les exporter vers un fichier .txt sous forme de colonne bien délimité.
    cependant je n'ai jamais eu affaire à ce traitement et les recherche que je fais me donne des résultats très vague. quelqu'un aurait un tutoriel assez explicite sur ce thème à me conseiller afin de m'aider dans ma tache ?

    Merci d'avance.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Ta question est aussi assez vague. Sur le principe on choisi souvent d'exporter des données texte au format CSV ou XML. Cela dépend du type de données mais également de l'utilisation que tu veux faire de ce fichier texte.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    j'en ai besoin pour une exportation des données dans une autre application autre que celle qui génère les données. il m'à été demandé la possibilité d'exporter les données sur un fichier texte, bien rangé par colonne.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    C'est quoi cette autre application ?

  5. #5
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    c'est une application développée pour la gestion de la trésorerie, mais qui n'est pas en web, elle doit utiliser les données d'édition des chèques.

  6. #6
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    J'ai utilisé ce code trouvé sur le net pour l'adapter à mon problème mais au lieu de me donner un fichier txt en téléchargement j'ai plutôt les informations écritent sur mon navigateur.

    besoin d'aide, ci-dessous 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
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    <?php
    require_once '../fonctions/connexion.php';
    require_once '../fonctions/Formatage.php';
    include '../fonctions/DateCsv.php';
     
    if (isset($_GET['banq'], $_GET['dtd'], $_GET['dtf']) && !empty($_GET['banq']))
    {
        $bank = $_GET['banq'];
        $datdeb = $_GET['dtd'];
        $datfin = $_GET['dtf'];
     
        //touch("listcheq.txt");
        $filename = "listcheq.txt";
        $f = fopen($filename, "w");
        if (!($f)) {
            echo "Impossible d'ouvrir le fichier !";
        } else {
            $sql = "SELECT Id_cheque, Num_Compte, NumChq, Beneficiaire, MontRgl, DateChq
                    FROM prestation
                    WHERE (Banque = '$bank'
                        AND DateChq BETWEEN '$datdeb' AND '$datfin'
                        AND Etat = 'Tiré')";
            $req = $DB->query($sql);
            $titre = "Chèques ".$bank." du ".$datdeb." au ".$datfin;
            fwrite($f,$titre."<br/>");
            //echo "<br/>";
            while ($d = $req->fetch()) {
                fwrite($f,Format($d['Num_Compte'], 24)."  ");
                //echo "  ";
                fwrite($f,Format(dateFRW($d['DateChq']), 10)." ");
                //echo "  ";
                fwrite($f,Format($d['NumChq'], 8)." ");
                //echo "  ";
                fwrite($f,Format($d['Beneficiaire'], 50)." ");
                //echo "  ";
                fwrite($f,Format($d['MontRgl'], 10)." ");
                //echo "  ";
                fwrite($f,Format("C", 1)."<br/>");
                //echo "<br/>";
            }
        }
    }
    elseif (isset($_GET['dtd'], $_GET['dtf']) && empty($_GET['banq'])) {
        $datdeb = $_GET['dtd'];
        $datfin = $_GET['dtf'];
     
        touch("operations.txt");
        $operation_file = fopen("operation.txt", "w");
        if (!($operation_file)) {
            echo "Impossible d'ouvrir le fichier !";
        } else {
     
            $sql = "SELECT Id_cheque, Num_Compte, NumChq, Beneficiaire, MontRgl, DateChq
    			FROM prestation
    			WHERE (DateChq BETWEEN '$datdeb' AND '$datfin'
    				AND Etat = 'Tiré')";
            $req = $DB->query($sql);
            $titre = "Chèques " . $bank . " du " . $datdeb . " au " . $datfin;
            fwrite($f, $titre . "<br/>");
            //echo "<br/>";
            while ($d = $req->fetch()) {
                fwrite($f, Format($d['Num_Compte'], 24) . "  ");
                //echo "  ";
                fwrite($f, Format(dateFRW($d['DateChq']), 10) . " ");
                //echo "  ";
                fwrite($f, Format($d['NumChq'], 8) . " ");
                //echo "  ";
                fwrite($f, Format($d['Beneficiaire'], 50) . " ");
                //echo "  ";
                fwrite($f, Format($d['MontRgl'], 10) . " ");
                //echo "  ";
                fwrite($f, Format("C", 1) . "<br/>");
                //echo "<br/>";
            }
        }
    }
    $fw = fopen($filename, "w");
    $taille = filesize($filename);
    $contenu = fread($fw,$taille);
    echo $contenu;

  7. #7
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    j'ai pu résoudre mon problème, j'ai le fichier rempli et qui est téléchargé grace à ce code , cependant il y a du HTML et du CSS qui se glisse au début du fichier texte je ne comprend pas ce phénomène, quelqu'un s'aurait pourquoi ?

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    <?php
    require_once '../fonctions/connexion.php';
    require_once '../fonctions/Formatage.php';
    include '../fonctions/DateCsv.php';
     
    if(file_exists("../fichiers/ListChq.txt"))
    {
        unlink("../fichiers/ListChq.txt");
    }
     
    //Création ou modification du fichier
    if (isset($_GET['banq'], $_GET['dtd'], $_GET['dtf']) && !empty($_GET['banq']))
    {
        $bank = $_GET['banq'];
        $datdeb = $_GET['dtd'];
        $datfin = $_GET['dtf'];
     
        //touch("listcheq.txt");
        $filename = "../fichiers/ListChq.txt";
        $taille = filesize($filename);
        $f = fopen($filename, "w");
        if (!($f)) {
            echo "Impossible d'ouvrir le fichier !";
        } else {
            $sql = "SELECT Id_cheque, Num_Compte, NumChq, Beneficiaire, MontRgl, DateChq
                    FROM prestation
                    WHERE (Banque = '$bank'
                        AND DateChq BETWEEN '$datdeb' AND '$datfin'
                        AND Etat = 'Tiré')";
            $req = $DB->query($sql);
            $titre = "Chèques ".$bank." du ".$datdeb." au ".$datfin;
            fputs($f,$titre);
            fputs($f,"\r\n");
            while ($d = $req->fetch()) {
                fputs($f,Format($d['Num_Compte'], 24)."  ");
     
                fputs($f,Format(dateFRW($d['DateChq']), 10)." ");
                //echo "  ";
                fputs($f,Format($d['NumChq'], 8)." ");
                //echo "  ";
                fputs($f,Format($d['Beneficiaire'], 50)." ");
                //echo "  ";
                fputs($f,Format($d['MontRgl'], 10)." ");
                //echo "  ";
                fputs($f,Format("C", 1));
                fputs($f,"\r\n");
            }
        }
    }
    elseif (isset($_GET['dtd'], $_GET['dtf']) && empty($_GET['banq'])) {
        $datdeb = $_GET['dtd'];
        $datfin = $_GET['dtf'];
     
        $filename = "../fichiers/ListChq.txt";
        $f = fopen($filename, "w");
        if (!($f)) {
            echo "Impossible d'ouvrir le fichier !";
        } else {
     
            $sql = "SELECT Id_cheque, Num_Compte, NumChq, Beneficiaire, MontRgl, DateChq
                    FROM prestation
                    WHERE (DateChq BETWEEN '$datdeb' AND '$datfin'
                        AND Etat = 'Tiré')";
            $req = $DB->query($sql);
            $titre = "Chèques du " . $datdeb . " au " . $datfin;
            fputs($f,$titre);
            fputs($f,"\r\n");
            while ($d = $req->fetch()) {
                fputs($f,Format($d['Num_Compte'], 24)."  ");
     
                fputs($f,Format(dateFRW($d['DateChq']), 10)." ");
                //echo "  ";
                fputs($f,Format($d['NumChq'], 8)." ");
                //echo "  ";
                fputs($f,Format($d['Beneficiaire'], 50)." ");
                //echo "  ";
                fputs($f,Format($d['MontRgl'], 10)." ");
                //echo "  ";
                fputs($f,Format("C", 1));
                fputs($f,"\r\n");
            }
        }
    }
    fclose($f);
     
    // Téléchargement du fichier
    if(file_exists($filename)){
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachement; filename="'.basename($filename).'"');
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: '.$taille);
        readfile($filename);
    }

  8. #8
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    Je voudrais préciser que le fichier à sa base est bon (bien rempli) le problème se pause lorsque je le télécharge.

  9. #9
    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 : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Peut-on voir un fichier généré ? (ou au moins les lignes HTML du début)
    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]

  10. #10
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    Voici un exemple de fichier .txt téléchargé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	  <br />
    <font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
    <tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Warning: filesize() [<a href='function.filesize'>function.filesize</a>]: stat failed for ../fichiers/ListChq.txt in C:\wamp\www\Scribe\sources\Fichtxt.php on line <i>20</i></th></tr>
    <tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
    <tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
    <tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0018</td><td bgcolor='#eeeeec' align='right'>409096</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp\www\Scribe\sources\Fichtxt.php' bgcolor='#eeeeec'>..\Fichtxt.php<b>:</b>0</td></tr>
    <tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0209</td><td bgcolor='#eeeeec' align='right'>430376</td><td bgcolor='#eeeeec'><a href='http://www.php.net/filesize' target='_new'>filesize</a>
    (  )</td><td title='C:\wamp\www\Scribe\sources\Fichtxt.php' bgcolor='#eeeeec'>..\Fichtxt.php<b>:</b>20</td></tr>
    </table></font>
    suivit des informations que je désire avoir :

    0000000000000000000SIB 1 08-02-2016 00099999 00000000000000000000000000000000000000000cico & co 0000012000 C
    0000000000000000000SIB 1 08-02-2016 00099999 000000000000000000000000000000000000cico N° & co 0000012000 C

  11. #11
    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 : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ah ah ! Si tu copies ce code HTML dans un fichier à part et que tu l'affiches, tu vas obtenir ceci :
    Nom : Greenshot_20160215_160917.jpg
Affichages : 498
Taille : 31,9 Ko
    En d'autres termes, ton script rencontre une erreur qui n'empêche pas le téléchargement du fichier mais qui tente de s'afficher, et comme tu envoies tout l'affichage vers ton fichier en sortie, l'erreur "s'affiche" dans ton fichier
    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]

  12. #12
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    Merci beaucoup effectivement sa marche avec classe lorsque je supprime les lignes concernant la taille du fichier.

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

Discussions similaires

  1. Exporter une base de données MySQL vers un fichier
    Par Niak74 dans le forum Bibliothèques
    Réponses: 6
    Dernier message: 05/05/2008, 10h05
  2. Export de base de donnée vers un fichier .txt
    Par VSEB33 dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/01/2008, 10h51
  3. [exporter] donnée MySQL vers PostGres
    Par cysboy dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 01/08/2007, 13h53
  4. Export de requete vers un fichier .txt en VB
    Par Sam 069 dans le forum Access
    Réponses: 6
    Dernier message: 23/02/2007, 13h26
  5. Réponses: 7
    Dernier message: 29/09/2005, 10h19

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