[Resolu]Probleme exportation csv
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 :
Code:
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");
}
}
}
?> |
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.
Et voilà le code de la fonction réalisant l'exportation :
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 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";
}
}
} |
C'est une fonction triviale d'exportation.
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