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

EDI, CMS, Outils, Scripts et API PHP Discussion :

conversion mysql vers CSV


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Points : 62
    Points
    62
    Par défaut conversion mysql vers CSV
    bonjour à tous ,
    j'ai besoin d'importer des champs de ma base dans un tableau csv pour l'ouvrir avec excel

    le script que j'ai fonctionne, mais reste qque aménagement que je n'arrive pas à faire
    1- dans excel la première ligne est vide
    2-plus embêtant , bien que mes champs insee et département sont enregistrés en texte dans la base , excel me supprime les premiers zéros dans 02 aisne, insee02xxx donc pour tous les départ commençant de 01 à 09
    3- je ne sais pas comment faire pour forcer le tableur à ouvrir les colonnes à la largeur de la plus grande donnée

    Merci d'avance pour votre aide

    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
     
    <?php
    //Recupération du nom de la table en ncours envoyée par GET
    	if(isset($_GET ["table"]))
    	{
    		$table = $_GET ["table"];
    	}
    else {
    	echo'<br />';
    	echo'<div class= "rouge">';
    	echo("ERREUR la Table est Inconnue ou Vide") ;
    	echo"</div>";
    	echo'<br />';
     
    }
     
    /***************************** choisir son délimiteur***************************** */
     
    //$delimiteur=';'; // point virgule
    $delimiteur=',';	// virgule
    $content_type="text/csv";
    //$content_type="text/txt";
     
    //**********requete pour choisir les champs ordre de nimegue3*******************
     
    $requete = "SELECT
    script,
    insee_commune,
    nom_commune,
    code_depart,
    nom_depart,
    type_acte,
    date_acte,
    date_republicaine,
    cote_ad,
    com_libre,
    nom,
    prenom,
    sexe,
    commentaire
    
    FROM $table
    ";
     
     
    $result = mysql_query ( $requete ) or die ( "Sql error : " . mysql_error( ) );
     
    if (!$result) die('il n\'y a pas denregistrement trouvé');
     
    		$num_fields = mysql_num_fields($result);
     
    		$headers = array();
     
    //****************creation en ecriture du fichier txt *************************
    $fp = fopen('php://output', 'w'); // ouvre le fichier et ecrit
     
    if ($fp && $result)
     
    		header('Content-type: application/octet-stream');
    		header('Content-Length: ' . filesize($row));
     
    {
    		header("Content-Type: $content_type");
            header("Content-Disposition: attachment; filename=$table-$insee_commune-$nom_commune.csv");
     
    		header('Pragma: no-cache');
    		header('Expires: 0');
     
           fputcsv($fp, $headers);
     
           while ($row = mysql_fetch_row($result))
           {
              fputcsv($fp, array_values($row), $delimiteur);
     
           }
    die;
    }
     
    ?>

  2. #2
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    A la ligne 52 tu as
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers = array();
    et à la ligne 59
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    fputcsv($fp, $headers);
    Ta première ligne est vide parce que tu ne renseigne pas la variable headers comme il faut.

    Pour ta seconde question, as-tu essayé de lire le fichier csv à partir d'un éditeur de texte. (Je te conseille de faire un test avec juste quelques lignes pour ne pas faire planter ton notepad)

    Pour la troisième, mon chat m'a bouffé ma langue déjà.

  3. #3
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Points : 62
    Points
    62
    Par défaut
    bonjour et merci pour ta réponse

    1-effectivement, un vieux morceau de code inutile qui a été oublié en supprimant $headers = array();
    on a bien la première ligne vide de supprimée

    2-avec Notepad, L’INSEE et code département sont bien au format 02 et 02xxx
    c'est l'insertion dans excel qui merdouille et qui me détruit la mise en page en les prenant pour un nombre
    et je trouve rien sur le net qui corrige la présentation est forçant les colonnes en texte

    3- je dois être trop vieux , pas compris l'humour. Désolé faudra m'expliquer !!!!!!

    excel ouvre les colonnes sans tenir compte de la longueur du texte
    donc je voudrais lui imposer la longueur minimum du texte enregistré dans le champ

    bon dimanche et merci de ta réponse
    à+

Discussions similaires

  1. conversion mysql vers firebird
    Par looping dans le forum Outils
    Réponses: 1
    Dernier message: 22/02/2012, 20h12
  2. [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
  3. [VBA-E] macro conversion excel vers csv
    Par abdelhamidem dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/10/2008, 16h48
  4. conversion mysql vers postgresql
    Par backus dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 04/07/2005, 18h42
  5. [VBA-E] macro conversion excel vers csv
    Par baboune dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/07/2004, 09h23

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