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 :

Comment faire un export csv


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 3
    Points
    3
    Par défaut Comment faire un export csv
    Bonjour a tous ,
    je me suis inscrit sur votre site car j'ai besoin d'exporter des resultats de recherche php en CSV , bon sur votre site il y a déjà plusieur post avec ce genre de question ,mais le truc c'est que je ne comprend pas du tout le fonctionnement
    je vous montre le code qui affiche les resultats de ma recherche et si vous avez la patience de m'expliquer comment exporter merci d'avance

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    <html>
    <head>
    </head>
     
    <body onload="window.parent.opener.location.href='#'; window.self.close()">
     
     
    <center>
    		<table border>
    		<tr bgcolor="#dedede">
    		<th>Id_contact</th>
    		<th>Prénom</th>
    		<th>Nom</th>
    		<th>Structure</th>
    		<th>Type</th>
     
    		<th>Select</th>
    		<th>Sal_Ref1</th>
    		<th>Montant_adhesion</th>
    		<th>Adresse2</th>
    		<th>Mail</th>
    		<th>Raison_contact</th>
    		<th>Supp</th>
     
     
     
    <?
    	//$total = mysql_fetch_row($rech);
    	for( $i = 0 ; $i < count($rech); $i++)
    	{
    		if( $i % 2 == 0 ) { $coul ="#AAB734"; }else{ $coul = "#CFDF3F"; }
    		$c=$rech[$i];
    		echo '<tr bgcolor='.$coul.'>';
    		echo '<td>'.$c->id_contact.'</td>
    			<td>'.$c->Prenom.'</td>
    			<td>'.$c->Nom.'</td>
    			<td>'.$c->Structure.'</td>
    			<td>'.$c->Categorie_principale.'   '.$c->Spe_agriculture.' '.$c->Spe_Bois.'  '.$c->Spe_Repas.'</td>
    			
    			<td><a href="javascript:poponload_modif('.$c->id_contact.');"><img src="image/modifier.gif" /></a></td>';
    		echo '<td>'.$c->Sal_Ref1.'</td>
    			<td>'.$c->Montant_adhesion.'</td>
    			<td>'.$c->Adresse2.'</td>
    			<td><a href="mailto:'.$c->Mail.'"> @</a>'.$c->Mail.'</td>
    			<td>'.$c->Raison_contact.'</td>
    			<td><a href="javascript:poponload_supp('.$c->id_contact.');"><img src="image/supprimer.png" /></a></td>';
     
     
     
     
     
    		echo '</tr>';
    		echo "\n";
    	}
    	echo '</table></center></br>';
    	echo '<left>';
    	echo ' Nombre de résultats : '.$i; 
    	echo '</left></br>';
     
      	?>
    	<center>
    	<table>
    	<tr> 
     
     
    		<th><input type="submit" name="Envoi Mail" value="Envoi Mail" />
    		<input type="button" name="CheckAll" value="Select All" onClick="checkAll(document.contact.choix); "/></th> 
     
     
     
     
    <?php 
     
     
     
    ?>
    	</tr>
    	</table></center></form>
     
     
    </body>
    </html>
     
    <?php	
     
    FRAME::corps_end();
    FRAME::pied();
     
     
    ?>

    merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est exactement pareil que ce que tu fais en HTML, sauf que c'est encore plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach ($rech as $values) {
    	echo $values->id_contact .';' .
                    $values->Prenom .';' . 
                    $values->Nom . "\r\n";
            }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    ok merci et ce que je comprend pas aussi c'est que cette partie de code certain la place dans le même fichier que celui du résultat de recherche et d'autre sur un autre fichier . bon moi j'ai opter pour un autre fichier j'ai test avec ta méthode mais cela ne retourne rien j'ai bien le doc qui se télécharge mais rien dedans ..
    merci bonne journée

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    J'ai repris le principe de ton code, mais par exemple dans ton code $rech n'est pas défini.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    oui j'ai bien compris le principe là le $rech fait reférence a la requete de recherche qui est dans un autre fichier , mais cela n'a pas trop d'importance a mon avis car je fais comme dans le resultat de la recherche je fais appel au fichier de traitement , je te montre ce que j'ai fait même si cela ext completment nul

    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
    <?php 
    	include_once("frame.class.php");
    	include_once("connexion.php");
    	include_once("traitement.php"); 
    ?>
    <?php
     
        // Entêtes des colones dans le fichier 
        $entete ="id_contact ,Prenom,Nom\n";
     
     
       	for( $i = 0 ; $i < count($rech); $i++) {
     
    		$values = $rech[$i];
    	echo $values->id_contact .';'.
                    $values->Prenom .';'. 
                    $values->Nom . "\r\n";
        }
     
         echo $entete;
    	echo ' Nombre de résultats : '.$i; 
     header("Content-Type: application/csv-tab-delimited-table");
    header("Content-disposition: filename=export.csv"); 
     
     
        ?>
    pour l'instant j'arrive a retourner l'entete et le nombre de résultat pas étonnant du tout .
    merci

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Citation Envoyé par sabotage Voir le message
    C'est exactement pareil que ce que tu fais en HTML, sauf que c'est encore plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach ($rech as $values) {
    	echo $values->id_contact .';' .
                    $values->Prenom .';' . 
                    $values->Nom . "\r\n";
            }
    J'aurais tendance à faire ça:
    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
    <?php
     
    // histoire de faire les tests
    $rech = array(
        range(1,3),
        range(4,6),
        range(7,9),
    )
     
    header("Content-Type: application/csv");
    header("Content-Disposition: attachment; filename=export.csv");
     
    $file = new SplFileObject('php://output');
    $file->fpucsv(array('a','b','c'), ';') // colonnes
    foreach ($rech as $values)
        $file->fputcsv($values, ';');
    C'est plus fun

    Edit --
    for( $i = 0 ; $i < count($rech); $i++)
    Le count dans la boucle du for

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    salut benjamin ,
    merci , mais en testant ton code hélas rien ne se telecharge

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    J'aurais tendance à faire ça:
    Tu es devenu gaga du SplFileObject
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Citation Envoyé par lebenjamin Voir le message
    salut benjamin ,
    merci , mais en testant ton code hélas rien ne se telecharge
    SplFileObject::fputscsv ne fonctionne qu'a partir de PHP 5.4. Dans le doute sur ta version, tu peux faire: :$file->fputs(implode(';', $values)."\n"); ce qui revient presque au même.

    J'aurais mieux fait de tester avant de poster

    Voici la version corrigée:
    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
    <?php
     
    // histoire de faire les tests
    $rech = array(
        range(1,3),
        range(4,6),
        range(7,9),
    );
     
    header("Content-Type: application/csv");
    header("Content-Disposition: attachment; filename=export.csv");
     
    $file = new SplFileObject('php://output');
    $file->fwrite(implode(';', array('a','b','c'))."\n"); // colonnes
    foreach ($rech as $values)
        $file->fwrite(implode(';', $values)."\n");
    @sabotage

    J'ai toujours été très objet

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    merci oui le fichier se télecharge bien par contre il ne prend pas en compte les collones tout reste sur la même colonne ^^

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/03/2012, 09h56
  2. comment faire l'export des données selon une période
    Par hadid dans le forum Administration
    Réponses: 9
    Dernier message: 28/08/2007, 11h30
  3. [HTML] Parcours d'une table HTML pour creer un fichier CSV : comment faire ?
    Par Thomus38 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 28/06/2007, 12h19
  4. comment faire un export DISPLAY en perl ou comment initialiser une variable linux
    Par redgis01 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 08/03/2007, 11h01
  5. [Export-import] Comment faire ?
    Par phil_ma dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 06/02/2005, 18h15

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