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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;
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 : 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 <? //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; ?>
Partager