Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/04/2011, 17h01   #1
Membre du Club
 
Avatar de spawns
 
Homme
Inscription : juillet 2004
Messages : 257
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations forums :
Inscription : juillet 2004
Messages : 257
Points : 60
Points : 60
Par défaut Export csv Excel UTF-8

slt à tous,
je me tourne vers vous pour un petit blem.

j'ai un petit bout de code qui exporte une bdd en csv, jusqu'a la pas de blem particulier. Le seul souci c'est que la bdd et en utf-8 et donc dans excel cela créer des problème avec les accents et caractères spéciaux.

je vous met le code :
Code :
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
 
// Connexion MySQL
// Obligatoire pour la suite !
 
// la variable qui va contenir les données CSV
$outputCsv = '';
 
// Nom du fichier final
$fileName = 'export-stocklist.csv';
 
$requete = "SELECT * FROM catalogue ORDER BY ordre ASC";
$sql = mysql_query($requete);
if(mysql_num_rows($sql) > 0)
{
    $i = 0;
 
    while($Row = mysql_fetch_assoc($sql))
    {
        $i++;
 
        // Si c'est la 1er boucle, on affiche le nom des champs pour avoir un titre pour chaque colonne
        if($i == 1)
        {
            foreach($Row as $clef => $valeur)
                $outputCsv .= trim($clef).';';
 
            $outputCsv = rtrim($outputCsv, ';');
            $outputCsv .= "\n";
        }
 
        // On parcours $Row et on ajout chaque valeur à cette ligne
        foreach($Row as $clef => $valeur)
            $outputCsv .= trim($valeur).';';
 
        // Suppression du ; qui traine à la fin
        $outputCsv = rtrim($outputCsv, ';');
 
        // Saut de ligne
        $outputCsv .= "\n";
 
    }
 
}
else
    exit('Aucune donnée à enregistrer.');
 
// Entêtes (headers) PHP qui vont bien pour la création d'un fichier Excel CSV
header("Content-disposition: attachment; filename=".$fileName);
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: application/vnd.ms-excel\n");
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");
 
echo $outputCsv;
exit();
quelle est la soluce pour que l'export se fasse de façon clin en csv ?
Merci d'avace de votre aide.
@+
spawns est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 17h08   #2
Membre régulier
 
Homme
Chef de projet NTIC
Inscription : juin 2007
Messages : 69
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2007
Messages : 69
Points : 70
Points : 70
Salut spawns,

Pourquoi ne pas utiliser la fonction utf8_decode ?
Cobalt59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 17h18   #3
Membre du Club
 
Avatar de spawns
 
Homme
Inscription : juillet 2004
Messages : 257
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations forums :
Inscription : juillet 2004
Messages : 257
Points : 60
Points : 60
oui,
mais ou la placer dans mon code ?
spawns est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 17h21   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
pour écrire un CSV c'est avec fputcsv, je te déconseille aussi de tout mettre ça dans une chaine
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 17h24   #5
Membre du Club
 
Avatar de spawns
 
Homme
Inscription : juillet 2004
Messages : 257
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations forums :
Inscription : juillet 2004
Messages : 257
Points : 60
Points : 60
la cela fonctionne,
j'ai juste ce petit soucis avec utf-8
je pense que cela vaut le coup de tenter avec utf8_decode mais je ne vois pas comment et ou l’insérer dans mon code.
spawns est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 17h52   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par spawns Voir le message
la cela fonctionne,
j'ai juste ce petit soucis avec utf-8
je pense que cela vaut le coup de tenter avec utf8_decode mais je ne vois pas comment et ou l’insérer dans mon code.
oui ça fonctionne mais ce n'est pas du-tout la bonne méthode, de plus ton code prend inutilement de la ressource, de plus dans Excel on ouvre pas un CSV mais on importe un CSV, si tu veux faire un fichier Excel utilise PHPExcel
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h32.


 
 
 
 
Partenaires

Hébergement Web