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
    Membre confirmé
    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 : 42
    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
    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
    Par défaut
    Tu as oublié d'alimenter ta variable $fichier_csv;
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    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 : 42
    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
    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
    Par défaut
    et le reste tu l'envoi à quel endroit du code ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    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 : 42
    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
    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
    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";
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    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 : 42
    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
    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
    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";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé
    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 : 42
    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
    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
    Par défaut
    Si tu ouvres ton fichier csv avec Excel il sera automatiquement présenté en colonnes.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre confirmé
    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 : 42
    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
    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, 06h45
  2. Exporter table vers CSV
    Par laure07 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 03/02/2012, 15h27
  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, 09h46
  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, 20h47
  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, 15h16

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