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 19/11/2011, 09h28   #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 Suppression derniere colonne csv lors de l'export

Slt à tous,
petit souci lors de l'export en fichier csv.
c'est un petit script que j'ai trouvé sur le net et qui fait son boulot.
Mon seul souci c'est qu'il inclus toutes les colonnes de la requête dans le fichier csv, alors que moi je voudrais que cela en export que certaines.

bout de 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
 
// la variable qui va contenir les données CSV
$outputCsv = '';
 
// Nom du fichier final
$fileName = 'export-email.csv';
 
$requete = "SELECT mail,letter FROM tbl_user WHERE letter='oui' ORDER BY mail";
$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(utf8_decode($valeur)).';';
 
        // Suppression du ; qui traine à la fin
        $outputCsv = rtrim($outputCsv, ';');
 
        // Saut de ligne
        $outputCsv .= "\n";
 
    }
 
}
else
    exit('Aucune donnée à enregistrer.');
dans mon exemple il va donc importer en CSV la colonne mail et la colonne letter.

Moi, je voudrais qu'il importe uniquement la colonne mail.

je ne vois pas trop comment faire, un petit coup de main serait le bienvenue.

Merci d'avance.
@+
spawns est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2011, 09h59   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Citation:
je voudrais qu'il importe uniquement la colonne mail.
Retire le champ letter du SELECT.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2011, 10h14   #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
ben non justement car j'en ai besoin dans la requête pour trier mes mail
spawns est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2011, 10h21   #4
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Citation:
Envoyé par spawns Voir le message
ben non justement car j'en ai besoin dans la requête pour trier mes mail
Pas besoin que le champ soit dans le SELECT pour pouvoir faire un tri dessus.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2011, 10h28   #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
ok nikel,
j'ignorais pour le select
Merci

@+
spawns est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2011, 15h39   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Ton CSV est incorrect, utilise fputcsv
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2011, 16h21   #7
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
Citation:
Envoyé par stealth35 Voir le message
Ton CSV est incorrect, utilise fputcsv
c'est a dire ???
spawns est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2011, 16h24   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par spawns Voir le message
c'est a dire ???
que si t'as un ", un saut de ligne, ou un ; dans l'une de tes chaines ton CSV sera incorrect, et que t’embête la vie pour quelque qui existe déjà dans PHP :
http://php.net/manual/fr/function.fputcsv.php

ps : fait un do...while pour créer le header
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2011, 16h32   #9
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
ok je vois,
mais mes champs sont nettoyés et formatés avant d’être entrés en BDD dans le cas présent. Donc pas de surprise sur des "," saut de ligne ou autre.

je vais quand meme regarder cette fonction de plus prés, ca peut être utile, merci pour l'info.

@+
spawns 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 08h25.


 
 
 
 
Partenaires

Hébergement Web