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 :

Exportation d'un volume important de données vers excel [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut Exportation d'un volume important de données vers excel
    Salam ; j'ai le script suivant pour exporté un volume variable de données vers excel.
    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
     
    <?php
    // exportation des données vers excel 
    include('../mod/cbd.inc.php');
    set_time_limit(0);
    header("Content-type: application/csv");
    header("Content-Disposition: attachment; filename=file.csv");
    header("Pragma: no-cache");
    header("Expires: 0");
     
    //Requete SQL
     
     
    			try {
    			$afflist=$cbd->prepare('SELECT * FROM conteneur 
    									  INNER JOIN com
    									  ON conteneur.cdc=com.cdc
    									  WHERE conteneur.cdet=:cdet 
    									  ORDER BY datedec DESC') or die('erreur de requête');
     
    								$cdet	=trim(htmlspecialchars($_SESSION['cdet']));
     
    								$afflist->bindParam(':cdet', $cdet ,  PDO::PARAM_STR); 
     
    								// On envois la requète
    								$afflist->execute();
    								// On récupère en 1er toutes les données
    								$datalist = $afflist->fetchAll();
    									// libèré la connexion du serveur
     
    								$afflist->closeCursor();	
     
    						// print_r ($datalist); exit;//verrification du résultat
    				}
    			  catch( Exception $e )
    				{
    				 echo 'Erreur d\'affichage : ', $e->getMessage();
    				} 
     
    while ($row = $afflist->fetch(PDO::FETCH_ASSOC)) {
          echo implode(';',$row ) . "\n";
       }
    ?>
    résultat:
    fichier excel qui s'ouvre mais pas sous le bon format?

  2. #2
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Par défaut
    Salut,

    Que veux-tu dire par : pas le bon format ?

    Parce que tu crées un fichier CSV, donc niveau présentation c'est pas le top c'est sûr.
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  3. #3
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    oui désolé : un fichier vide !!!!
    si j'active
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ....
    print_r ($datalist); exit;//verrification du résultat
    j'ai des array avec des données affichés dans la page excel comme le resultat d'un var_dump

  4. #4
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Par défaut
    Et si tu parcourais le bon tableau ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ($row = $afflist->fetch(PDO::FETCH_ASSOC)) {
        echo implode(';',$row ) . "\n";
    }
    Ca, ça ne fonctionne pas et c'est normal. $afflist n'est plus disponible vu que tu le fermes.

    En plus, tu donnes toi même le nom de la variable qui contient tes données.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($datalist as $data) {
        echo implode(';', $data) . "\n";
    }
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  5. #5
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    $afflist n'est plus disponible vu que tu le fermes.
    là tu parle de $afflist->closeCursor(); Ok
    sa marche bien , j'ai mes colonnes mais sans les entêtes !!!!

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    fputcsv pour faire du CSV

    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
    header("Content-type: text/csv");
    header("Content-Disposition: attachment; filename=file.csv");
     
    $stmt = $pdo->prepare('
    SELECT * 
    FROM conteneur 
    INNER JOIN com
        ON conteneur.cdc=com.cdc
    WHERE conteneur.cdet=:cdet 
    ORDER BY datedec DESC'
    );
     
    $stmt->execute(array('cdet' => $_SESSION['cdet']));
     
    $output = fopen('php://output', 'wb');
     
    $row = $stmt->fetch(PDO::FETCH_ASSOC);
    $headers = array_keys($row);
     
    fputcsv($output, $headers, ';');
     
    do {
        fputcsv($output, $row, ';');
    } while ($row = $stmt->fetch(PDO::FETCH_NUM));

    Ton try .. catrch sert a rien
    Ton or die ne sert à a rien
    Tes trim + htmlspecialchars servent a rien
    Ton PDO::PARAM_STR sert a rien
    Ton fetchAll sert a rien
    Ton closeCursor sert a rien
    Tes headers Pragma et Expires ne servent a rien
    Le MIME du CSV est text/csv

    Mais le mieux est de mettre ça dans un fichier avant

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

Discussions similaires

  1. C# import export de donnés vers excel
    Par dualife dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 12/06/2013, 16h23
  2. Code VBA pour importer des données vers Excel
    Par thanmirt dans le forum SDK
    Réponses: 1
    Dernier message: 09/04/2011, 17h53
  3. Réponses: 0
    Dernier message: 18/08/2010, 12h43
  4. exportation et importation de données vers excel
    Par Skizo dans le forum Access
    Réponses: 3
    Dernier message: 20/05/2006, 09h50
  5. Export de données vers Excel
    Par psykot63 dans le forum Access
    Réponses: 2
    Dernier message: 03/01/2005, 12h04

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