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 une table en cvs php odbc


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut Exporter une table en cvs php odbc
    Bonjour,

    Je voudrais exporter une table ACCESS au format csv en utilisant php. Essayé de faire un code, mais ça me génère un fichier csv vide .
    Je vois pas où est mon erreur. Si quelqu'un pouvait m'aider ça serait bien, je sèche complètement.

    Voici mon code php :

    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
    $fname = "tracking.csv" ;
    $html_output = '';
     
    $sqlcsv = " SELECT * FROM banque";
     
    if (false === $result = odbc_exec($cnx, $sqlcsv)) die('Impossible de générer le fichier, voici l\'erreur :'.mysql_error());
     
     
    $num_fields = odbc_num_fields($result);
     
    /*for ($i = 0; $i < $num_fields; $i++) {
      $html_output.= odbc_field_name($result , $i).",";
    }*/
    $html_output = substr($html_output,0, -1)."\r\n";
     
    while($row = odbc_fetch_row($result)){
      for ($i=0; $i < $num_fields; $i++) {
        $html_output.= $row[$i]."|";
     
      }
      $html_output = substr($html_output,0, -1)."\r\n";
    }
     
    header('Content-Type: text/csv'); 
    header('Content-Disposition: attachment; filename="tracking.csv"');
    header('Pragma: no-cache');
    header('Expires: 0');
     
    echo $html_output;
    Est que quelqu'un aurait une idée pourquoi j'ai un fichier csv vide ?
    Merci.

  2. #2
    Membre éclairé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2010
    Messages : 36
    Par défaut
    Salut,

    Tout d'abord, le séparateur en csv est le ";" et non le "|".

    Si ce n'est pas cela, effectue un die de ta requete pour savoir si elle te renvoie bien un résultat.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    Salut badajoz,

    J'ai toujours un fichier csv qui est vide même en enlevant le "|" par un ";".

    Le die, je le mets à quel endroit ? J'ai déjà mis un die dans mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (false === $result = odbc_exec($cnx, $sqlcsv)) die('Impossible de générer le fichier, voici l\'erreur :'.mysql_error());
    et ça me renvoi pas d'erreurs. Je sèche littéralement .

  4. #4
    Membre éclairé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2010
    Messages : 36
    Par défaut
    Fais un die comme ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    while($row = odbc_fetch_row($result)){
      for ($i=0; $i < $num_fields; $i++) {
        $html_output.= $row[$i]."|";
      }
      die( $html_output );
      // Je ne pense pas que tu ai besoin du substr ci-dessous
      $html_output = substr($html_output,0, -1)."\r\n";
    }
    Si il affiche les données correcte "champs1;champs2;champs3;" alors c'est que ta variable est bien complété et que le problème vient d'ailleurs.

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    Salut badajoz,

    Merci pour ta réponse. Finallement, je suis arrivé à générer mon export en csv .

    Voici comment j'ai fais :

    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
    $sqlcsv = " SELECT * FROM Banque";
    $result = odbc_exec($cnx, $sqlcsv);
     
    header("Content-Type: application/csv-tab-delimited-table"); 
    header("Content-disposition: filename=tracking.csv"); 
     
    // titre des colonnes 
    	   $fields = odbc_num_fields($result); 
     
     	   $i = 1; 
     	   while ($i < $fields) { 
     	     echo odbc_field_name($result, $i).";"; 
     	     $i++; 
     	   } 
    	   echo "\n"; 
     
    // données de la table 
     	   while ($arrSelect = odbc_fetch_array($result)) { 
     	    foreach($arrSelect as $elem) { 
    	     echo "$elem|"; 
    	    } 
     	    echo "\n"; 
     	   }

  6. #6
    Membre éclairé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2010
    Messages : 36
    Par défaut
    Salut,

    Du coup qu'elle était l'erreur dans ton script ?

Discussions similaires

  1. Exporter une table sql de mon hébergeur sur mon ordi avec un script php
    Par olivierdauxais dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 23
    Dernier message: 26/05/2015, 12h33
  2. [MySQL] Exporter une partie d'une table MYSQL via php ensuite l'importer
    Par houssem86 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/02/2014, 13h06
  3. [MySQL] Exporter une table Mysql vers CSV en utilisant PHP
    Par skins dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 09/06/2010, 20h33
  4. [access][oracle]exporter une table
    Par thief dans le forum JDBC
    Réponses: 10
    Dernier message: 14/07/2005, 13h34
  5. exporter une table sans le nom de colonnes ?
    Par vuldos dans le forum Access
    Réponses: 13
    Dernier message: 11/10/2004, 19h56

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