Bonjour à tous,

J'ai repris un code d'internet pour réaliser une exportation de donnees mysql vers un fichier excel.
Malheureusement le code m'affiche les données sur le site et m'affiche aussi un probleme de header en bas du code: Warning: Cannot modify header information - headers already sent by (output started
Si quelqu'un pouvait m'aider, merci et bonne journée!

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
<?php
// Connexion MySQL
 
 mysql_connect("", "", "" );
 mysql_select_db("");
// Obligatoire pour la suite !
 
// la variable qui va contenir les données CSV
$outputCsv = '';
 
// Nom du fichier final
$fileName = 'export-csv.csv';
 
$requete = "SELECT * FROM membre ORDER BY Nom";
$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();
?>