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 :

Optimisation du code PHP [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Par défaut Optimisation du code PHP
    Bonjour,

    Dans mon site, j'ai différents tableaux alimentés grâce à ma base de donnée. Je voudrais extraire ces informations en fichier csv.

    Voici le code :
    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
    <?php
     
    //accès à la la base de données
    include("../connexion.php");
     
    //Premiere ligne = nom des champs (
    $xls_output = "id_user;login";
    $xls_output .= "\n";
     
    //Requete SQL
     
    $query='SELECT id_user,login FROM user';
      $result = mysql_query($query) or die(mysql_error());
     
      //Boucle sur les resultats
    while($row = mysql_fetch_array($result))
    {
    $xls_output .= "$row[id_user];$row[login]\n";
    }
     
    header("Content-type: application/vnd.ms-excel");
    header("Content-disposition: attachment; filename=Ma_liste_" . date("Ymd").".csv");
    print $xls_output;
    exit;
    ?>
    Le code fonctionne ce que j'aimerai faire c'est optimiser le code pour l'utiliser sur les différents tableaux sans faire du copier coller de ce code.
    Par exemple : quand je vais cliquer sur le bouton "export" (dans mon code html) ça va me télécharger un fichier csv avec comme colonne id_user et login.
    Sauf que j'ai différents tableaux qui s'alimentent dans différentes tables de ma bdd.

    Voici mes autres tableaux :
    SELECT id_membre, nom, prenom, organisme from membre;
    SELECT id_materiel, num_serie, immo from materiel;


    Voici un exemple de code de tableau :

    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
    <div class="container">
    	<section>
    		<table id="example" class="display" cellspacing="0" width="100%">
    		<thead><tr>
    			<th>Id Membre</th>
    			<th>Nom</th>
    			<th>Prenom</th>
    			<th>Organisme</th>
    		</tr></thead>
    <?php
    $query = "SELECT id_membre, nom, prenom, organisme from membre;";
    $membreList = mysqli_query($connexion, $query);
    while($membre = mysqli_fetch_array($membreList)){
    	echo "<tr>";
    	echo "<td>".$membre['id_membre']."</td>";
    	echo utf8_encode("<td>".$membre['nom']."</td>");
    	echo utf8_encode("<td>".$membre['prenom']."</td>");
    	echo "<td>".$membre['organisme']."</td>";
    	echo "</tr>";
    }
    ?>
    	</table>
    </div>
    </section>
    <a href="html/export_csv.php"><input class="valider" type="submit" name="export_csv" id="export_csv" value="Export_csv"/></a>
    Merci de votre aide.
    Méghan

  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
    Par défaut
    Tu fais une fonction :
    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
    <?php
     
    function export_csv($table, $colonnes) {
     
    include("../connexion.php");
     
    $xls_output = implode(';', $colonnes) . "\n";
     
    $query='SELECT '  . implode(',', $colonnes) . ' FROM ' . $table;
    $result = mysql_query($query);
     
    while($row = mysql_fetch_array($result))
    {
          $xls_output .= implode(';', $row) . "\n";
    }
     
    header("Content-type: application/vnd.ms-excel");
    header("Content-disposition: attachment; filename=Ma_liste_" . date("Ymd").".csv");
    echo $xls_output;
    exit();
    }
     
    $table = 'user';
    $colonnes = array('id_user', 'login');
    export_csv($table, $colonnes);
     
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Par défaut
    Merci pour votre réponse !
    Par contre j'obtiens ca dans le fichier csv, comment y remédier ? :
    Nom : csv.png
Affichages : 103
Taille : 3,3 Ko

    Auriez-vous des conseils pour qu'un jour je puisse créer seule ce type de fonction ? Dois-je suivre un cours particulier ou c'est purement de la logique ?

  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
    Par défaut
    Comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while($row = mysql_fetch_assoc($result))
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Par défaut
    Super merci beaucoup !

  6. #6
    Membre averti
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Par défaut Petit problème..
    J'ai encore un petit soucis. Je voudrais créer un bouton qui me permettrait d'appeler ma fonction mais je ne vois pas comment faire.
    J'ai essayé avec : onClick="javascript:export_csv" mais je n'y arrive pas...

    Je ne sais pas si c'est possible de faire quelques choses comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(isset($_POST=['export_csv']{
    $table = 'user';
    $colonnes = array('id_user', 'login');
    export_csv($table, $colonnes);
    }
    Voici le code en entier :

    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
    <input class="valider" type="submit" name="export_csv" id="export_csv" value="Export_csv" onClick="javascript:export_csv();"/>
     
    <?php
    //Fonction pour exporter les tableaux dans un fichier csv
     
    function export_csv($table, $colonnes) {
     
    include("../connexion.php");
     
    $xls_output = implode(';', $colonnes) . "\n";
     
    $query='SELECT '  . implode(',', $colonnes) . ' FROM ' . $table;
    $result = mysqli_query($connexion, $query);
     
    while($row = mysqli_fetch_assoc($result))
    {
          $xls_output .= implode(';', $row) . "\n";
    }
     
    header("Content-type: application/vnd.ms-excel");
    header("Content-disposition: attachment; filename=Ma_liste_" . date("Ymd").".csv");
    echo $xls_output;
    exit();
    }
     
    $table = 'user';
    $colonnes = array('id_user', 'login');
    export_csv($table, $colonnes);
    ?>
    Merci à vous,
    Méghan

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Optimisation de Code Php Jquery
    Par PainkillerDev dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 09/07/2013, 17h18
  2. Optimisation de code php
    Par Oprichnik dans le forum Humour Informatique
    Réponses: 2
    Dernier message: 16/04/2011, 20h53
  3. Optimisation du code PHP vs SQL
    Par persia dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 18/11/2010, 20h10
  4. Optimisation de code PHP
    Par MeHo_ dans le forum Langage
    Réponses: 9
    Dernier message: 29/04/2009, 11h21
  5. Question optimisation de code PHP/HTML
    Par heavenvibes dans le forum Langage
    Réponses: 7
    Dernier message: 14/08/2008, 11h57

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