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

Bibliothèques et frameworks PHP Discussion :

[CSV] Problème avec CSV


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 27
    Points : 16
    Points
    16
    Par défaut [CSV] Problème avec CSV
    Bonjour,

    lorsque j'extrai des données de la base de données vers un fichier csv, j'ai une modification du format de la code postal (par exemple pour l'Ain, qui commence par 0, il n'affiche plus le 0). Pour les autres departements, y a pas de problème.

    le type du code postal dans la base est déjà texte. Donc je ne sait pas si cela vient de Microsoft excel.

    si quelqu'un peut me dire d'où ça vient et comment y remédier.

    Merciii

  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
    Il faut mettre une apostrophe devant ton code postal pour qu'excel ne le considère pas comme un nombre.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Merci de ta réponse mais j'ai tableau, je ne sais pas comment le faire, voilà mon code, t'as une suggestion et merci encore une fois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $r = mysql_query("select * from ".$table);
     
    		$rwo=array();
    		$i=0;
    		while ($row = mysql_fetch_assoc($r)) {
    		if ($i==0){
    			$csv .=''.('Id Contact;Civilite;Nom;Prenom;Adresse;Adresse Complementaire;Code Postal;Ville;Pays;Tel;Tel Portable;Email;Niveau;ArtDesign;ImageSon;Stage decouverte;Moyen Communication;Ville d\'école;Se rendre sur place;Date rendez vous;Creneau horaire;Recevoir des informations;Langage')."\n";		}
    		$i++;
     
     
    		$csv .= ''.utf8_decode(join(';', $row))."\n";
    		}

  4. #4
    Expert éminent sénior

    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
    Points : 10 727
    Points
    10 727
    Par défaut
    utilise fputcsv pour créer un CSV

    c'est immonde ton truc, alors qu'on peux vraiement plus propre simple et fonctionnel:

    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
    $sql = "SELECT * FROM $table";
     
    $result = mysql_query($sql);
     
    $handle = tmpfile();
    $fields = mysql_fetch_assoc($result);
     
    fputcsv($handle, array_keys($fields), ';');
     
    do
    {
        fputcsv($handle, $fields, ';');
    }
    while($fields = mysql_fetch_assoc($result));
     
    mysql_free_result($result);
     
    rewind($handle);
    fpassthru($handle);
    fclose($handle);

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Sincèrement j'arrive pas à saisir le code que tu m'a mis, peux tu svp faire des changements à mon et merci davantage .
    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
     
    $sql = "SELECT * FROM $table";
    		$result = mysql_query($sql);
    		$handle = tmpfile();
    		$fields = mysql_fetch_assoc($result);
    		fputcsv($handle, array_keys($fields), ';');
    		do
    		{
    			fputcsv($handle, $fields, ';');
    		}
    		while($fields = mysql_fetch_assoc($result));
    		mysql_free_result($result);
    		rewind($handle);
    		fpassthru($handle);
    		fclose($handle);
     
     
     
     
     
     
    		header("Content-Type: text/csv; charset=UTF-8");
    		header("Content-disposition: csv; filename=" . date("Y-m-d") ."_".$table.".csv; size=".strlen($csv));
    		echo $csv;
     
     
    		exit;
                break;
    			case "brochure":
     
    				$dbconnection=mysql_connect("localhost", DB_USER, DB_PASSWORD);
    				mysql_select_db(DB_NAME,$dbconnection);
    				$table="users_contact";
    				$csv = NULL;
    				/* link identifier from db connection */
    				$r = mysql_query("select * from ".$table);
    				$i=0;
    				while ($row = mysql_fetch_assoc($r)) {
    				if ($i==0){
    					$csv .=''.('Id Contact;Nom;Prenom;Adresse;Adresse Complementaire;Code Postal;Ville;Pays;Tel;Tel Portable;Email;Niveau;ArtDesign;ImageSon;Stage decouverte;Recevoir des informations;Langage;Civilite;')."\n";
    				}
    				$i++;
    				$csv .= ''.utf8_decode(join(';', $row))."\n";
    				}
    				header("Content-Type: text/csv; charset=UTF-8");
    				header("Content-disposition: csv; filename=" . date("Y-m-d") ."_".$table.".csv; size=".strlen($csv));
    				echo $csv;
    				exit;

  6. #6
    Expert éminent sénior

    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
    Points : 10 727
    Points
    10 727
    Par défaut
    pourquoi avoir mis echo $csv; ??? il viens d'ou le $csv ?

    c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    header("Content-Type: text/csv; charset=UTF-8");
    header("Content-disposition: csv; filename=" . date("Y-m-d") ."_".$table.".csv;");
    fpassthru($handle);
    fclose($handle);

Discussions similaires

  1. [CSV] Problème avec les header
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 25/01/2008, 18h53
  2. [CSV] Problème avec un fichier csv
    Par gregal dans le forum Langage
    Réponses: 7
    Dernier message: 13/02/2007, 11h23
  3. Réponses: 7
    Dernier message: 29/06/2006, 12h33
  4. problème avec un telechargement d'un .csv dans Excel
    Par olosta dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/05/2006, 03h29
  5. [CSV] Problème avec CSV et point virgules
    Par Lotz dans le forum Langage
    Réponses: 6
    Dernier message: 09/03/2006, 15h11

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