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

Langage PHP Discussion :

export table en csv


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2014
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2014
    Messages : 145
    Points : 33
    Points
    33
    Par défaut export table en csv
    Bonjour ,

    j'ai fait un script pour essayer d'exporter le contenu d'une table cependant lors de l'exporte mon fichier contient aucun enregistrement.

    Voici mon script si vous pouvez m'aiguiller

    merci

    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
    <?php
     
    include_once('/connect.php');
    $fichier_csv = "Code client;nom;adresse;email;telephone";
    $ligne = "\n";
     
    $req=$bdd->query('SELECT id_client,nom_client,adresse_client,email_client,telephone_client FROM Client ORDER BY ID_Client ASC ');
     
    while($export = $req->fetch())
    							{
    							$ligne = $export['id_client'];
    										   $export['nom_client'];
    										   $export['adresse_client'];
    										   $export['email_client'];
    										   $export['telephone_client'];'\n';		
    							}
    header("Content-type: application/vnd.ms-excel");	
    header("Content-disposition: attachment; filename=Export_client" . date("Ymd").".csv");						
    print $fichier_csv;
    exit;
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as oublié d'alimenter ta variable $fichier_csv;

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2014
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2014
    Messages : 145
    Points : 33
    Points
    33
    Par défaut
    en fait $fichier_csv comprend l'entete du tableau d'export

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    et le reste tu l'envoi à quel endroit du code ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2014
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2014
    Messages : 145
    Points : 33
    Points
    33
    Par défaut
    donc je reprend depuis le début.

    je test si je peux afficher le resultat de $ligne

    déja sa commence bien il m'affiche 7

    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
    <?php
     
    include_once('/connect.php');
    $fichier_csv = "id;nom;adresse;email;telephone";
     
     
    $req=$bdd->query('SELECT id_client,nom_client,adresse_client,email_client,telephone_client FROM Client ORDER BY ID_Client ASC ');
     
    while($export = $req->fetch())
     
    							{
    							$ligne = $export['id_client'];
    										   $export['nom_client'];
    										   $export['adresse_client'];
    										   $export['email_client'];
    										   $export['telephone_client'];		
    							}
    print $ligne;
    ?>

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est partout qu'il faut mettre des affichages, pas seulement sur une valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while($export = $req->fetch())	{
          echo implode(',', $export) . "\r\n";
    }

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2014
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2014
    Messages : 145
    Points : 33
    Points
    33
    Par défaut
    bonjour cela marche en faisant cela :

    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
    <?php
     
    include_once('connect.php');
    //Premiere ligne = nom des champs (
    $fichier_csv = "nom";
    $fichier_csv .= "\n";
     
    $req=$bdd->query('SELECT nom_client FROM Client');
     
      //Boucle sur les resultats
     
    while($client = $req->fetch())
    {
    $fichier_csv .= "$client[nom_client]\n";
    }
     
    header("Content-type: application/vnd.ms-excel");
    header("Content-disposition: attachment; filename=AddressBook_" . date("Ymd").".csv");
    print $fichier_csv;
    exit;
    ?>
    mais je ne comprend pas certain point du script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $fichier_csv = "nom";
    $fichier_csv .= "\n";
    pourquoi le . avant le = le \n c'est un retour de ligne ?

    et pouquoi ceci est entre ""
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fichier_csv .= "$client[nom_client]\n";
    et ne pas avoir fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fichier_csv .= $client[nom_client]\n;
    merci de ton aide

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ca sera plus économique de faire ton affichage en direct au lieu de passer par une variable.
    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
    <?php
    header("Content-type: application/vnd.ms-excel");
    header("Content-disposition: attachment; filename=AddressBook_" . date("Ymd").".csv");
    include_once('connect.php');
     
    echo  = "nom\n";
     
    $req=$bdd->query('SELECT nom_client FROM Client');
     
    while($client = $req->fetch())
    {
        echo $client['nom_client'] . "\n";
    }
     
    exit;
    ?>
    .= c'est un opérateur de concatenation
    http://php.net/manual/fr/language.operators.string.php

    Pour l'autre ligne l’équivalent serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fichier_csv .= $client['nom_client'] . "\n";

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2014
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2014
    Messages : 145
    Points : 33
    Points
    33
    Par défaut
    effectivement c'est plus rapide et plus claire.

    j'ai essayé cela

    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
    <?php
    header("Content-type: application/vnd.ms-excel");
    header("Content-disposition: attachment; filename=AddressBook_" . date("Ymd").".csv");
    include_once('connect.php');
     
    echo   "Code_client;Nom;Prénom;adresse \n";
     
     
    $req=$bdd->query('SELECT id_client,nom_client,prenom_client,adresse_client FROM Client');
     
    while($client = $req->fetch())
    {
        echo $client['id_client'].';'.$client['nom_client'].';'.$client['prenom_client'].';'.$client['adresse_client']."\n";
    }
     
    exit;
    ?>
    du cout cela me donne différentes colonnes comme un tableau xsl mais pas de séparation en ; comme les CSV.

    et les é s'affiche mal j'ai essayé de rajouté cela header("Content-type: application/vnd.ms-excel; charset: utf-8");

    mais idem

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu ouvres ton fichier csv avec Excel il sera automatiquement présenté en colonnes.

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2014
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2014
    Messages : 145
    Points : 33
    Points
    33
    Par défaut
    ok j'ai effectué un test avec notepad effectivement et pour l'encodage je doit rajouter d'autre option ?

Discussions similaires

  1. [AC-2010] Export table en csv avec séparateur
    Par cleataz dans le forum Access
    Réponses: 14
    Dernier message: 03/10/2015, 07h45
  2. Exporter table vers CSV
    Par laure07 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 03/02/2012, 16h27
  3. SQL SERVER 2005 - Export tables en CSV
    Par ash_rmy dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 28/12/2010, 10h46
  4. [MySQL] Exporter table vers csv via PhpMyAdmin
    Par mikael2235 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/06/2010, 21h47
  5. [Paradox] Automatiser l'export de table en CSV
    Par Laurent Dardenne dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/02/2005, 16h16

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