Export CSV - PHP

Eléphant du PHP | 63 Messages

29 mars 2007, 14:24

Bonjour à tous,

tout d'abord je tiens à préciser que j'ai effectué une recherche sur le forum avant de poster.

J'aimerais effectuer un export csv du résultat d'une requête. Voici le code exemple que j'utilise pour le moment :
$list = array (
    'aaa,bbb,ccc,dddd',
    '123,456,789',
    '"aaa","bbb"'
);

$fp = fopen('file.csv', 'w');

foreach ($list as $line) {
    fputcsv($fp, split(',', $line));
}

fclose($fp);
Ce dernier stocke bien les élément du tableau. Cependant, comment faire pour :
1. mettre par exemple 'aaa,bbb,ccc,dddd' dans une colonne, '123,456,789' dans une seconde colonne ?
2. donner un nom à ces colonnes.
3. permettre à l'utilisateur de nommer et enregistrer le fichier

Merci par avance

Eléphant du PHP | 170 Messages

29 mars 2007, 16:55

Tu peux expliquer la bizarreté de ton tableau $list ?
4 valeurs séparée par des virgules, puis 3 , puis 2.

Si cela est le résultat d'une requête, comment est assemblée ta liste.
Si des valeurs sont à NULL, il devait au moins y avoir du vide dans ton tableau ????

Bref, pas clair ton truc.
Benjamin Franklin a dit :
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends

Invité
Invité n'ayant pas de compte PHPfrance

29 mars 2007, 17:31

Tu peux expliquer la bizarreté de ton tableau $list ?
4 valeurs séparée par des virgules, puis 3 , puis 2.

Si cela est le résultat d'une requête, comment est assemblée ta liste.
Si des valeurs sont à NULL, il devait au moins y avoir du vide dans ton tableau ????

Bref, pas clair ton truc.
Bjr

je tire ça tout simplement de l'exemple de php.net

http://fr2.php.net/fputcsv

Invité
Invité n'ayant pas de compte PHPfrance

29 mars 2007, 17:35

admettons que j'ai une requete dont je veux récupérer 3 champ :

nom, prenom, mail

Comment faire pour exporter les résultat de celle ci vers un xls ou csv avec 3 colonnes nom, prenom et mail ?

Merci, et désolé si je n'ai pas été clair

Mammouth du PHP | 804 Messages

29 mars 2007, 23:55

Salut

tu as un script génial pour ca il est disponible sur le net , enfin je crois , il me semble que ca s'appelait xlsMagique.

Tu peu facilement le modifier et l'utiliser a ta guise , il est sur les 2 formats acces et axcel :wink:

Je viens de te retrouver le lien http://odbcphp.free.fr/

Invité
Invité n'ayant pas de compte PHPfrance

30 mars 2007, 16:53

Salut

tu as un script génial pour ca il est disponible sur le net , enfin je crois , il me semble que ca s'appelait xlsMagique.

Tu peu facilement le modifier et l'utiliser a ta guise , il est sur les 2 formats acces et axcel :wink:

Je viens de te retrouver le lien http://odbcphp.free.fr/
merci à toi.
A bientôt

Eléphant du PHP | 170 Messages

31 mars 2007, 08:33

Tiens la méthode pour avoir un tableau multi :
<?php
<?php
$list = array (
    'aaa,bbb,ccc,dddd',
    '123,456,789',
    '"aaa","bbb"'
);
foreach ($list as $key=>$line) 
{
$colonne[]=explode(',',$line);
}
echo '<pre>';
echo print_r($colonne,true);
echo '</pre>';
?> 
Avec ça tu obtiens cet affichage :
Array
(
[0] => Array
(
[0] => aaa
[1] => bbb
[2] => ccc
[3] => dddd
)

[1] => Array
(
[0] => 123
[1] => 456
[2] => 789
)

[2] => Array
(
[0] => "aaa"
[1] => "bbb"
)

)

Il te suffit de traiter toutes les clés identiques sur une même ligne CSV.
Problème dans le cas présent (exemple de la doc) tes lignes ne sont pas complètes, il manque des données dans les array()
A toi de traiter en conséquence. :wink:
Benjamin Franklin a dit :
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends