Bonjour,
je dois faire un export des données d'une table dans un fichier .csv.
Existe t-il une fonction mysql pour le faire?
ou alors je dois faire un select et ecrire le résultat dans un fichier avec fwrite ?
Merci
Version imprimable
Bonjour,
je dois faire un export des données d'une table dans un fichier .csv.
Existe t-il une fonction mysql pour le faire?
ou alors je dois faire un select et ecrire le résultat dans un fichier avec fwrite ?
Merci
http://www.developpez.net/forums/showthread.php?t=76345
http://www.davidtouvet.com/blog/arch...fichier-excel/
module SpreadsheetExcelWriter de PEAR
Et que penses tu de le faire en mysql ? comme ci-dessous ?
Code:
1
2
3
4
5 SELECT a,b,a+b INTO OUTFILE '/tmp/result.text' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table;
en effet, c'est dans le manuel de référence MySQL
honnêtement, j'ai jamais testé
ma foi, tu peux essayer, ça coûte rien :)
par contre je pense pas que ça puisse te générer un csv comme tu le voulais
on dirait que ça te sort un bête fichier .txt
J'ai finalement utiliser la bonne solution de david ci dessous.
J'ai un problème lorsque le contenu d'un champs de ma requete contient des retours chariots, le fichier excel pense que c'est la fin d'une ligne alors que c'est dans la même colonne.
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 <? //ce fichier montre un exemple permettant de generer un fichier excel (on peut remplacer le .csv par .xls) //parametres de connexion a la bdd include("config.php"); //Premiere ligne = nom des champs (si on en a besoin) //$csv_output = "p_nom,p_email"; //$csv_output .= "\n"; //Requete SQL $query = "SELECT ... FROM ... WHERE ... "; $result = mysql_query($query) or die('Erreur SQL !<br />' . $query . '<br />' . mysql_error()); //Boucle sur les resultats while($row = mysql_fetch_array($result)) { $csv_output .= "$row[p_nom] $row[p_prenom],$row[p_nom],$row[p_prenom],$row[p_email]\n"; } header("Content-type: application/vnd.ms-excel"); header("Content-disposition: attachment; filename=AddressBook_" . date("Ymd").".csv"); print $csv_output; exit; ?>