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 :

Export vers un format CSV


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Par défaut Export vers un format CSV
    Bonjour,

    J'ai un script PHP ou je dois exporter des données qui se trouvent dans un tableau, sauf que ma requête renvoient beaucoup plus de données que je n'en veux, et je n'arrive pas à sélectionner, les données qui appartiennent au champs dont j'ai besoin(ceux de $champs), mais je ne vois pas comment faire.

    Je vous donne le code de mon fichier pour exporter

    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/octet-stream; charset=iso-8859-1');
    header("Content-disposition: filename=export.csv");
     
    include('../pages/connect.php');
     
    $hostname = $hote; // nom du serveur
    $database = $base; // nom de la base de données
    $username = $user; // nom de l'utilisateur
    $password = $mdp; // mot de passe
    $db = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
     
    // Sélection de la base
    mysql_select_db($database,$db);
     
    $req = str_replace("\'","'",$_REQUEST['req']);
    $fichier = "../exports/export.csv";
    $myfile = fopen($fichier,"w");
    $resQuery = mysql_query($req) or die (mysql_error());
     
    	 if (mysql_num_rows($resQuery) > 0) {
     
    			echo mysql_field_name($resQuery, 1).";";
    			echo mysql_field_name($resQuery, 17).";";
    			echo mysql_field_name($resQuery, 16).";";
    			echo mysql_field_name($resQuery, 4).";";
    			echo mysql_field_name($resQuery, 2).";";
    			echo mysql_field_name($resQuery, 3).";";
    			echo mysql_field_name($resQuery, 9).";";
    			echo "\n";
    			echo "\n";
    			$champs = ("$num_m, $marque, $type, $nom_util, $service, $unite, $adrip");
     
    			// données de la table
    			while ($champs = mysql_fetch_array($resQuery, MYSQL_ASSOC)) {
    				foreach($champs as $elem) {
    					echo "$elem;";				}
    			}
    			echo "\n";
     
         }else{
    		echo 'Aucune fiche trouvée';
    		echo '<a href="../body.php">Retour</a>';
    		exit;
    	 }
     
    	mysql_close();
    	fclose($myfile);
    ?>
    merci

  2. #2
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Par défaut
    et bien tu n'as qu'a faire un select des champs qui t'intéresse dans ta requête non?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Par défaut
    Le problème c'est que cette requête est issue d'un formulaire donc elle ne contient pas forcément toutes les données des champs que je souhaite exporter

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Par défaut
    ok alors c'est simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $champs = ("$num_m, $marque, $type, $nom_util, $service, $unite, $adrip");
    while ($donnees = mysql_fetch_array($resQuery, MYSQL_ASSOC)) {
    				foreach($champs as $elem) {
    					echo $donnees[$elem];				}
    			}
    ça ça doit marcher, ça va extraire les données de chaque champ du tableau

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Par défaut
    Quand je remplace ton code par le miens il n'y a que le titre des champs qui s'affiche, donc les données ne sont pas écrites :/

  6. #6
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Par défaut
    euh j'en ai un exemple qui marche du feu de dieu donc vérifie bien les variables et affiche ta requête parce que tu dois avoir une merde

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Par défaut
    Ben je suis sur et certains que je me plante pas sur les champs et la j'ai mis le code comme il fallait :/

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
     <?php
    header('Content-Type: application/octet-stream; charset=iso-8859-1');
    header("Content-disposition: filename=export.csv");
     
    include('../pages/connect.php');
     
    $hostname = $hote; // nom du serveur
    $database = $base; // nom de la base de données
    $username = $user; // nom de l'utilisateur
    $password = $mdp; // mot de passe
    $db = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
     
    // Sélection de la base
    mysql_select_db($database,$db);
     
    $req = str_replace("\'","'",$_REQUEST['req']);
    $fichier = "../exports/export.csv";
    $myfile = fopen($fichier,"w");
    $resQuery = mysql_query($req) or die (mysql_error());
    $num = mysql_num_rows($resQuery);
     
    	if ($num > 0) {
     
    		echo mysql_field_name($resQuery, 1).";";
    		echo mysql_field_name($resQuery, 17).";";
    		echo mysql_field_name($resQuery, 16).";";
    		echo mysql_field_name($resQuery, 4).";";
    		echo mysql_field_name($resQuery, 2).";";
    		echo mysql_field_name($resQuery, 3).";";
    		echo mysql_field_name($resQuery, 9).";";
    		echo "\n";
    		echo "\n";
     
    		/*$champs = ("$num_m, $marque, $type, $nom_util, $service, $unite, $adrip");
    		// données de la table
    		while ($champs = mysql_fetch_array($resQuery, MYSQL_ASSOC)) {
    			foreach($champs as $elem) {
    				echo "$elem;";				
    			}
    			echo "\n";
    		}*/
     
    		$champs = ("$num_uc, $marque, $type, $nom_util, $service, $unite, $adrip");
    		while ($donnees = mysql_fetch_array($resQuery, MYSQL_ASSOC)) {
    		//Selection des informations pour l'adresse IP
    			foreach($champs as $elem) {
    				echo $donnees[$elem];				
    			}
    			echo "\n";
    		}
     
        }else{
    		echo 'Aucune fiche trouvée';
    		echo '<a href="../body.php">Retour</a>';
    		exit;
    	}
     
    	mysql_close();
    	fclose($myfile);
    ?>

  8. #8
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Par défaut
    en effet, as-tu fais l'affichage de ta requête pour vérifier qu'elle fait les bons trucs?
    et ton tableau de champs me parait byzarre essaie plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $champs=array($num_uc, $marque, $type, $nom_util, $service, $unite, $adrip);

Discussions similaires

  1. Export d'une BDD vers le format CSV
    Par Flatbeat dans le forum C#
    Réponses: 5
    Dernier message: 18/02/2011, 14h18
  2. exporter une BD vers un format csv
    Par 4seb5 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 07/05/2007, 14h21
  3. Exportation d'une bd mysql vers un format csv
    Par derric8016 dans le forum Outils
    Réponses: 5
    Dernier message: 13/01/2006, 21h58
  4. [Oracle] export vers un fichier csv
    Par illegalsene dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/10/2005, 23h58

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