Bonjour,
Voilà, j'ai récupéré un script afin d'exporter le résultat d'une requête MySQL sous forme de fichier CSV, cependant, il ne fonctionne pas et je ne comprend pas pourquoi.
Voici le code :
Il m'affiche toujours "Aucune donnée à enregistrer".
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 include("header.php"); // Connexion MySQL require_once('connection.php'); // la variable qui va contenir les données CSV $outputCsv = ''; // Nom du fichier final $fileName = "parrainage_"; $fileName .= date('Y-m-d_H:i:s'); $fileName .= ".csv"; // on crée la requête SQL $sql = 'SELECT * FROM `ps_customer`'; // on envoie la requête $req = mysql_query($sql) or die('Erreur SQL !<br>' . $sql . '<br>' . mysql_error()); if (mysql_num_rows($sql) > 0) { $i = 0; while ($Row = mysql_fetch_assoc($sql)) { $i++; // Si c'est la 1ère 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(); ?>
Si quelqu'un peut m'aider, je lui en serais reconnaissant.
Partager