Bonjour ou bonsoir à tous et à toutes.
Tout est dans le titre...J'ai un gros soucis d'exportation...
J'ai besoin d'exporter le résultat d'une requête au format .csv.
J'arrive à exporter les données que je veux mais pas seulement, j'ai aussi le code complet de la page qui réalise l'exportation. J'ai essayé plein de choses, mais je n'y comprends rien.
Détails :
Voilà la page qui appelle la fonction d'exportation :
Dans cette page, je vérifie que l'utilisateur a suffisamment de privilèges pour faire une exportation et que la page a bien été appelée depuis l'index.
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 <?php if(isset($_SESSION) && ($GLOBALS['USER']['level'] >= 2 || $GLOBALS['USER']['admin'])){ ?> <?php header("Content-Type: application/csv"); header("Content_Type: text/comma-separated-values"); //Nom du fichier en sortie header('Content-disposition: attachement; filename="Export.csv"'); exportation_csv(); } else{ if(isset($_SESSION)){ if(!isset($_SESSION['user_id'])){ // si l'utilisateur n'est pas connecté include("pages/connexion.php"); }else{ // si l'utilisateur est connecté et qu'il n'a pas accès à la page, c'est qu'il n'a pas le droit d'utilisation nécessaire include("pages/401.htm"); } } } ?>
Et voilà le code de la fonction réalisant l'exportation :
C'est une fonction triviale d'exportation.
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 function exportation_csv (){ //Requête sur tous les champs de ma table $resQuery = mysql_query("SELECT SG.QUANTITEGRAINESDISPONIBLES FROM SACHET_GRAINES SG, TAXON T, EST_DE_ESPECE EDE, ESPECE E WHERE E.CODEESPECE = 4 AND E.CODEESPECE = EDE.CODEESPECE AND EDE.CODETAXON = T.CODETAXON AND T.CODETAXON = SG.CODETAXON"); //On test que la requête a bien retourné qqchose if (mysql_num_rows($resQuery) != 0) { // Autant de colonnes que de champs dans la clause SELECT $fields = mysql_num_fields($resQuery); $i = 0; //Les champs du fichier csv porte le même nom que ceux de la base de données while ($i < $fields) { print mysql_field_name($resQuery, $i).";"; $i++; } echo "\n"; //Transfert des données de la table while ($arrSelect = mysql_fetch_array($resQuery, MYSQL_ASSOC)) { foreach($arrSelect as $elem) { print "\"$elem\","; } print "\n"; } } }
Voilà, j'aimerai savoir comment faire pour exporter seulement le résultat de la requête, et pas tout le code de la page d'index avec...
En attendant impatiemment vos suggestions,
Bonne journée ou bonne soirée
Partager