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 :

[SQL] Récupération de données


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Par défaut [SQL] Récupération de données
    Bonsoir

    Je cherche une solution pour récupérer les données qui sont dans ma base sql et les mettre dans un tableau excel
    J'aimerais que l'utilisateur ait la possiblité d'extraire uniquement les enregistrements d'une date précise

    Est ce que cela est possible

    Merci pour votre aide

  2. #2
    jnore
    Invité(e)
    Par défaut
    oui c'est possible. Mais en fonction du sgbd l'instruction sql est différente.
    Regarde dans la faq de ton sgbd si tu n'as pas l'info.
    Après l'export se fait souvent au format csv qu'excel est capable de lire.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Par défaut
    c'est une base mysql créée avec easyphp

    Sinon je souhaiterais avoir un fichier xls car avec fichier csv le formatage des cellules n'est pas convaincant

    merci pour votre aide

  4. #4
    jnore
    Invité(e)
    Par défaut
    Pour l'export c'est ici : http://mysql.developpez.com/faq/?pag...export_fichier

    Pour le filtrage par une date précise, il te faudra récupérer la donnée que tu intégrera dans ta requete SQL.
    Pour l'utilisation des formulaire, c'est ici: http://php.developpez.com/faq/?page=formulaires

    Le fichier généré sera sauvegardé sur le serveur, il te faudra rediriger sur celui-ci pour que le client puisse le récupérer.
    Un header fera l'affaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    header('location: fichier')
    Pour ce qui de l'extension csv , il vaut mieux que tu l'utilises dans un premier temps.
    Quand tu maitriseras tout ceci, tu pourras chercher dans google pour que php puisse générer de l'excel comme tu le souhaites.

    Bon courage

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Par défaut
    Voici le script que j'ai essayé de faire mais il ne fonctionne pas il me met l'erreur :

    Parse error: parse error, unexpected T_VARIABLE in c:\program files\easyphp1-7\www\export.php on line 78

    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
    <?php
        // Connection à la base de donnée.
        mysql_connect("localhost","root","");
        mysql_select_db("base1");
     
        // Sélection des données.
        $result=mysql_query("select * from livraisons");
     
        // Functions d'exportation vers Excell.
        function xlsBOF() {
            echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
            return;
        }
     
        function xlsEOF() {
            echo pack("ss", 0x0A, 0x00);
            return;
        }
     
        function xlsWriteNumber($Row, $Col, $Value) {
            echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
            echo pack("d", $Value);
            return;
        }
     
        function xlsWriteLabel($Row, $Col, $Value ) {
            $L = strlen($Value);
            echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
            echo $Value;
            return;
        }
     
        header("Pragma: public");
        header("Expires: 0");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Content-Type: application/force-download");
        header("Content-Type: application/octet-stream");
        header("Content-Type: application/download");;
        header("Content-Disposition: attachment;filename=orderlist.xls ");
        header("Content-Transfer-Encoding: binary ");
     
        xlsBOF();
     
        // Insertion de la ligne 1 : Titre de la feuille.
        xlsWriteLabel(0,0,"Livraisons conseiller Cofidis.");
     
        // Insertion des entêtes de colonnes.
        xlsWriteLabel(2,0,"Civilite.");
        xlsWriteLabel(2,1,"Nom");
        xlsWriteLabel(2,2,"Prenom");
        xlsWriteLabel(2,3,"Adresse");
        xlsWriteLabel(2,4,"Ville");
        xlsWriteLabel(2,5,"Code postal");
        xlsWriteLabel(2,6,"Telephone");
        xlsWriteLabel(2,7,"Doucments à fournir");
        xlsWriteLabel(2,8,"Conseiller");
        xlsWriteLabel(2,9,"Rendez vous");
        xlsWriteLabel(2,10,"Remarque");
        xlsWriteLabel(2,11,"Date");
     
        $xlsRow = 3;
     
        // Insertion des données dans chaque ligne
        while($row=mysql_fetch_array($result)){
            xlsWriteLabel($xlsRow,0,$row['civilite']);
            xlsWriteLabel($xlsRow,1,$row['nom']);
            xlsWriteLabel($xlsRow,2,$row['prenom']);
            xlsWriteLabel($xlsRow,3,$row['adresse']);
            xlsWriteLabel($xlsRow,4,$row['ville']);
            xlsWriteLabel($xlsRow,5,$row['codepostal']);
            xlsWriteLabel($xlsRow,6,$row['telephone']);
            xlsWriteLabel($xlsRow,7,$row['documentsafournir']);
            xlsWriteLabel($xlsRow,8,$row['conseiller']);
            xlsWriteLabel($xlsRow,9,$row['rendezvousr']);
            xlsWriteLabel($xlsRow,10,$row['remarque']);
            xlsWriteLabel($xlsRow,11,$row['date']); 
     
         $xlsRow++;
        }
        xlsEOF();
        exit(); 
     
    ?>
    Pouve vous m'aider

    D'avance merci

  6. #6
    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
    Vu le message il te manque surement un ' ou un " voir un ; aux alentours de la ligne 78 !

    au passage tu as 2 fois le ; sur cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header("Content-Type: application/download");;
    normalement ça ne change rien mais sait on jamais !
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Par défaut
    J'ai enlevé le ; de trop
    Mais toujour même erreur et aux alentours de la ligne 78 je ne vois ou il y a une erreur....

  8. #8
    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
    fais peter les lignes de 70 a 80 .... vu que nous on sait pas laquelle c'est !
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  9. #9
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Citation Envoyé par RideKick
    fais peter les lignes de 70 a 80 .... vu que nous on sait pas laquelle c'est !
    Ce sont les dernieres avant le while:
    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
        // Insertion des données dans chaque ligne
        while($row=mysql_fetch_array($result)){
            xlsWriteLabel($xlsRow,0,$row['civilite']);
            xlsWriteLabel($xlsRow,1,$row['nom']);
            xlsWriteLabel($xlsRow,2,$row['prenom']);
            xlsWriteLabel($xlsRow,3,$row['adresse']);
            xlsWriteLabel($xlsRow,4,$row['ville']);
            xlsWriteLabel($xlsRow,5,$row['codepostal']);
            xlsWriteLabel($xlsRow,6,$row['telephone']);
            xlsWriteLabel($xlsRow,7,$row['documentsafournir']);
            xlsWriteLabel($xlsRow,8,$row['conseiller']);
            xlsWriteLabel($xlsRow,9,$row['rendezvousr']);
            xlsWriteLabel($xlsRow,10,$row['remarque']);
            xlsWriteLabel($xlsRow,11,$row['date']); 
     
         $xlsRow++; // ligne 80
        }
        xlsEOF();
        exit(); 
     
    ?>
    Mais j'avoue ne pas voir d'erreur flagrante, par contre c'est peut etre pas le bon fichier si? dans le parse error c'est marqué le nom du fichier concerné, est-ce le bon?

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Par défaut
    si je te confirme c'est bien le fichier export.php

  11. #11
    Membre chevronné Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Par défaut
    Bonjour,
    au vu du message d'erreur, je me demande si tu ne t'es pas trompé sur le nom d'un champ dans ta base.
    Par exemple , ca n'est peut pas $row['rendezvousr'], mais plutot $row['rendezvous'].

    Ne sachant pas qui est la ligne 78, ca va etre dur de t'en dire plus ....

    Bon courage,

    Sohnic

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Par défaut
    En appelant le scritpt php via une page html ça fonctionne il m'exporte bien un fichier xls

    Par contre quand j'essaye de l'ouvrir avec excel il me met "impossible de lire le fichier"

    POuvez vous m'aider je pense qu'on est pas loin de résoudre le problème

    D'avance merci

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Par défaut
    C'est bon ça fonction maintenant il y avit une erreur de saisie dans le label "rendezvous"

    Maintenant ce que je souhaiterais c'est que l'utilisateur puisse extraire les données de la base mais qui correspondant à une date précise
    Ou éventuellement si c'est moin compliqué à faire à extraire uniquement les données de la base qui correspondent à la date du jour

    Merci pour votre aide

  14. #14
    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
    tu change ta requete ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from livraisons where date ='ce que tu veux'
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

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

Discussions similaires

  1. [SQL] Récupération de données
    Par Hydrae dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/08/2007, 13h57
  2. [SQL] Récupération des données
    Par ptitrhumdu73 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 18/07/2007, 16h18
  3. [SQL] Récupération des données : liste déroulante
    Par amazircool dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 11/04/2007, 01h02
  4. [SQL] Récupération de données et Insert dans une table
    Par heteroclite dans le forum PHP & Base de données
    Réponses: 32
    Dernier message: 12/07/2006, 16h17
  5. Réponses: 6
    Dernier message: 23/10/2005, 12h24

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