IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Probleme exportation csv


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut [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 : 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");
    			}
    		}
    	}
    ?>
    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 : 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"; 
       		} 
     	}
    }
    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

  2. #2
    Membre émérite Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Par défaut
    'ai aussi le code complet de la page qui réalise l'exportation
    c'est à dire ? tu as le code PHP dans le fichier ?
    tu peux copier un exemple de ce que tu as dans le fichier ?

  3. #3
    Membre confirmé Avatar de speedy_g
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 213
    Par défaut
    Essaie de commencer de suite par les balises php dans ta page qui appele la fonction d'exportation.

    du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
     
    header();
     
    ?>
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    <?php
     
    ?>
     
    <?php
     
    header();
    ?>
    C'est ptet une histoire de header déja envoyé, si dans la page, il y'a du code html, avant le header();

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut
    Merci,

    En fait j'ai résolu mon problème de html : j'appelais la page d'exportation depuis une autre page, donc j'avais déjà des données à exporter.
    Mais mon soucis maintenant, c'est que l'exportation ne me retourne plus rien...
    Avez-vous des idées la dessus ?

    la page qui appelle l'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
    35
     
    <?php
    if(isset($_SESSION) && ($GLOBALS['USER']['level'] >= 2 || $GLOBALS['USER']['admin'])){
    ?>
     
    <form method="post" action="pages/gestion/export_csv_resultat.php">
    	<ul>
    		<!-- Liste des cases à cocher -->
    		<li><input type="checkbox" name="famille">	Famille</input></li><br>
    		<li><input type="checkbox" name="genre">	Genre</input></li><br>
    		<li><input type="checkbox" name="espece">	Espèce</input></li><br>
    		<li><input type="checkbox" name="nomV">	Nom vernaculaire</input></li><br>
    		<li><input type="checkbox" name="aireGeo">	Aire géographique</input></li><br>
    		<li><input type="checkbox" name="proprietes">	Propriétés</input></li><br>
    		<li><input type="checkbox" name="etatP">	Etat phénologique</input></li><br>
    		<li><input type="checkbox" name="nbSG">	Nombre de sachets de graine</input></li><br>
    		<li><input type="checkbox" name="parc">	Parcelles</input></li><br>
     
    	</ul>
     
    		<input type="submit" name="exporterCSV" value="Exporter">
     
    </form>
    <?php
    }
    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");
    			}
    		}
    	}
    ?>
    La page qui effectue l'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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <?php
    	header("Content-Type: application/vnd.ms-excel");
    	header("Content_Type: text/comma-separated-values");
    	//Nom du fichier en sortie
    	header('Content-disposition: attachement; filename="Export.csv"');
    	header("content-type: application/excel; charset=iso-8859-1");
    	header("Content-Type: application/csv-tab-delimited-table");
     
    if(isset($_SESSION) && ($GLOBALS['USER']['level'] >= 2 || $GLOBALS['USER']['admin'])){
     
    	require_once("../../librairies/fonctions.php");
    	$connexion=connexionBDD("localhost","AVignot","avignot","jardin_botanique_dvt");
     
    	//Requête sur tous les champs de ma table
    	$resQuery = mysql_query("SELECT *
    								FROM ESPECE");
     
    	//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) { 
    			echo 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) { 
    				echo "\"$elem\","; 
        			} 
        			echo "\n"; 
       		} 
     	}
    }
    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");
    			}
    		}
    	}
    ?>

  5. #5
    Membre émérite Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Par défaut
    enleve tes headers, ajoute des echo de controle et vois ce qu'affiche la page d'exportation pour comprendre où est le probleme. Debugge quoi !

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut
    En fait j'avais publié de me connecter à la BDD.....
    Probleme résolu

Discussions similaires

  1. Probleme export d'un gridview en .csv
    Par PORTES dans le forum Développement Sharepoint
    Réponses: 0
    Dernier message: 24/02/2010, 09h32
  2. [MySQL] Probleme export csv
    Par lordlifen dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/10/2009, 11h58
  3. Probleme de lenteur lors de l'export CSV
    Par kodo dans le forum Langage
    Réponses: 2
    Dernier message: 08/06/2007, 11h53
  4. probleme exporter csv
    Par kems2000 dans le forum Requêtes
    Réponses: 1
    Dernier message: 26/12/2006, 06h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo