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 :

Exporter les données vers excel (php/Mysql)


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Exporter les données vers excel (php/Mysql)
    Bonjour tout le monde
    je suis débutant et je dois faire une application pour mon stage
    donc j'ai fait un moteur de recherche qui me donne un tableau comme resultat tout va bien jusqu'à là, ce que je voudrais faire c'est que quand j'ai ces résultats je peux l'exporter vers excel c'est à dire avoir un bouton qu on on clique dessu les données s'exporte vers excel.
    voila mon script recherche.php.

    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
    <?php
    // on se connecte à notre base
    $base = mysql_connect ('localhost', 'root', '');
    mysql_select_db ('stock', $base) ;
     
    ?>
    <style>
    	body {background-color: #DAFFA8; background-image: url(imagefond.jpg);background-repeat: repeat-y;background-position: left top;}
    	</style>
    <center><table border bgcolor="#7FFF00"><tr>
      <CAPTION><strong>Produits disponibles dans le stock</strong></CAPTION>
    <th>ID</th>
    <th>Type</th>
    <th>Marque</th>
    <th>Modele</th>
    <th>Format</th>
    <th>Commentaires</th>
     
    </tr>
     
    <?php
    	$marque=mysql_real_escape_string(htmlspecialchars ($_POST['Marque']));
    	$produit=mysql_real_escape_string(htmlspecialchars ($_POST['Produit']));
    	$format=mysql_real_escape_string(htmlspecialchars ($_POST['Format']));
    	$type=mysql_real_escape_string(htmlspecialchars ($_POST['Type']));
    	$modele=mysql_real_escape_string(htmlspecialchars ($_POST['Modele']));
     
    $requete = "SELECT * FROM $produit WHERE 1=1 ";
     
    if ($type != "") {
       $requete .= "AND Type= '".$type."' ";
    }
    if ($marque != "") {
       $requete .= "AND Marque= '".$marque."' ";
    }
    if ($modele != "") {
       $requete .= "AND Modele= '".$modele."' ";
    }
    if ($format != "") {
       $requete .= "AND Format = '".$format."' ";
    }
     
    if ($type != "") {
       $requete .= "OR Type= '".$type."' ";
    }
    if ($marque != "") {
       $requete .= "OR Marque= '".$marque."' ";
    }
    if ($modele!= "") {
       $requete .= "OR Modele= '".$modele."' ";
    }
    if ($format != "") {
       $requete .= "OR Format= '".$format."' ";
    }
     
    $res = mysql_query($requete) or die(mysql_error());
    while ($donnees = mysql_fetch_array($res)) // On fait une boucle pour lister les résultats
    {
    ?>
     
    <tr>
    <td><?php echo $donnees['ID'];?></td>
    <td><?php echo $donnees['Type'];?></td>
    <td><?php echo $donnees['Marque']; ?></td>
    <td><?php echo $donnees['Modele']; ?></td>
    <td><?php echo $donnees['Format']; ?></td>
    <td><?php echo $donnees['Commentaires']; ?></td>
    </tr>
     
     
    <?php
    }
    echo"Pour faire une nouvelle recherche";
    // Fin de la boucle
    ?>
         <html>
        <body>
     <form action="f_recherche_famille2.html" method="post">
     <p><input type="submit"style="width: 130px" value=" Cliquer ICI " /></p>;
    </form>
     <form action="excel.php" method="post">
     <p><input type="submit"style="width: 130px" value=" exportexcel " /></p>;
    </form>
    <form action="index.php" method="post">
    			<p><input type="submit"style="width: 130px"  value="Fermer" /></p>
    		</form>
    	    </body>
        </html>
    merci pour les aides.

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    mais tu veux un format excel excel ou un format tabulé?

    parce que y'en a un qui est facile pour un débutant et l'autre que tu vas galérer. Et ya plein de tutos.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  3. #3
    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
    Hello

    Si tu utilise du CSV (Comma Separated Values - .csv) c'est très simple à faire et c'est compris par Excel, exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $query = "SELECT `name`,`surname`,`age` FROM `member`";
    if ($results = mysql_query($query))
    {
        header('Content-Type: application/csv');
        echo "name;surname;value\r\n";
        while ($row = mysql_fetch_assoc($results))
           echo implode(';', $row) . "\r\n";
    }
    else die('Query Error');

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Bonjour Benjamin, en fait je veux que l'utilisateur peut modifier les données obtenus en exportant le fichier vers un format qui puisse faire ça, et comment faire apparaitre un bouton qui directement exporte ces données en cliquant dessus. je note que je suis débutant Merci pour l'aide

  5. #5
    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
    enfait je veux que l'utilisateur peut modifier les données obtenus en exportant le fichier vers un format qui puisse faire ça
    Alors il te faut un formualire d'import/export :p

    Faire un boutton pour lancer le téléchargement est très facile:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form action="export.csv.php">
    <input type="submit" value="Exporter" />
    </form>
    Pour récupérer les données modifiées par l'utilisateur, c'est très simple aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form actipn="import.csv.php">
    <input type="file" name="csv_file" />
    <input type="submit" value="Importer" />
    </form>
    coté PHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if (isset($_FILES['csv_file']))
    {
      $handle = fopen($_FILES['tmp_name'], 'r');
      $data = array(); // le tableau qui va contenir nos données
      $keys = explode(';', fgets($handle));
      while ($line = fgets($handle))
      {
         $data[] = array_combine($keys, explode(';', $line));
      }
     
      fclose($handle);
      var_dump($data);
    }
    That's really that easy

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    plutôt :

    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
    if (isset($_FILES['csv_file']))
    {
        $handle = fopen($_FILES['tmp_name'], 'r');
        $data = array(); // le tableau qui va contenir nos données
     
        $keys = fgetcsv($handle, 0, ';'));
     
        while ($line = fgetcsv($handle, 0, ';'))
        {
            $data[] = array_combine($keys, $line);
        }
     
        fclose($handle);
        var_dump($data);
    }


    pas oublier le fgetcsv

    et pour exporter c'est :

    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
    if ($results = mysql_query($query))
    {
     
        $handle = tmpfile();    
        $row    = mysql_fetch_assoc($results);
     
        fputcsv($handle, array_keys($row), ';');
     
        do
        {
        	fputcsv($handle, $row, ';');
        }
        while($row = mysql_fetch_assoc($results));
     
        header('Content-Type: application/csv');
        fpassthru($handle);
    }
    else 
    {
        exit('Query Error');
    }
    pas oublier non plus le fputcsv

  7. #7
    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
    Je l'oublie à chaque fois... bien vu.

  8. #8
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    on pourrait presque y mettre dans la faq.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    je vais faire un article la dessus

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    oui c'est bien ce script que vous m'avez donné mais ce que je comprends pas est ce comment ce script va connaitre les données recherchées, alors que les deux script sont séparés? je m'explique j'ai mon script recherche.php qui contient le bouton qui me redirige vers export.csv.php donc quand je fais ma recherche j'ai mes données se forme d'un tableau avec un bouton ci dessus si je souhaite exporter ce fichier je clique dessus et je veux que les résultats de cette recherche apparaissent dans le fichier exporté. je rappelle que je suis débutant dans la programmation.

  11. #11
    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
    Il te suffit soit
    - de mettre en cache les informations de la page de listing afin de les utiliser pour générer le fichier CSV
    - de faire passer les critères de recherche obtenus sur la page de listing sur la page d'export et d'utiliser le même algorithme que celui du listing mais pour créer le CSV au lieu du HTMl.

    Note que si tu avait fait ton site en suivant le pattern MVC, tu pourrait utiliser les mêmes contrôles métier et changer uniquement la vue en spécifiant le format HTML dans un cas et CSV dans l'autre.

    Bon courage.

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Frenchement Benjamin, je n'ai rien compris et honnetement c'est comme tu me parle le chinois, je me connais pas en programmation à la base je suis réseau mais je me converti en programmation voila merci

  13. #13
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par debutant91 Voir le message
    Frenchement Benjamin, je n'ai rien compris et honnetement c'est comme tu me parle le chinois, je me connais pas en programmation à la base je suis réseau mais je me converti en programmation voila merci
    si tu débutes ca veux dire que t'as le temps d'apprendre et ne brule pas les étapes non plus sinon tu vas jamais t'en sortir.

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    si tu débutes ca veux dire que t'as le temps d'apprendre et ne brule pas les étapes non plus sinon tu vas jamais t'en sortir.
    stealth35 je suis d'accord avec toi mais je dois faire cette application dans un moi voila sinon j'apprends au fur a mesur

  15. #15
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    qu'est ce qu'il te reste a régler comme problème ?

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    qu'est ce qu'il te reste a régler comme problème ?
    j'ai réussi à faire un script (export.php) qui exporte des données vers Excel ou par exemple les script que vous m'avez donnes ci dessus, mon souci maintenant c'est que comment faire un lier sur le scrpit export.php et le scrpit recherche.php c'est à dire quand je fais une recherches les donnée trouvé peuvent se télécharger ou exporter vers Excel si je clique sur le bouton "Exporter".
    voila mes scripts:
    recherche.php
    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
    <?php
    // on se connecte à notre base
    $base = mysql_connect ('localhost', 'root', '');
    mysql_select_db ('stock', $base) ;
     
    ?>
    <style>
    	body {background-color: #DAFFA8; background-image: url(imagefond.jpg);background-repeat: repeat-y;background-position: left top;}
    	</style>
    <center><table border bgcolor="#7FFF00"><tr>
      <CAPTION><strong>Produits disponibles dans le stock</strong></CAPTION>
    <th>ID</th>
    <th>Type</th>
    <th>Marque</th>
    <th>Modele</th>
    <th>Format</th>
    <th>Commentaires</th>
     
    </tr>
     
    <?php
    	$marque=mysql_real_escape_string(htmlspecialchars ($_POST['Marque']));
    	$produit=mysql_real_escape_string(htmlspecialchars ($_POST['Produit']));
    	$format=mysql_real_escape_string(htmlspecialchars ($_POST['Format']));
    	$type=mysql_real_escape_string(htmlspecialchars ($_POST['Type']));
    	$modele=mysql_real_escape_string(htmlspecialchars ($_POST['Modele']));
     
    $requete = "SELECT * FROM $produit WHERE 1=1 ";
     
    if ($type != "") {
       $requete .= "AND Type= '".$type."' ";
    }
    if ($marque != "") {
       $requete .= "AND Marque= '".$marque."' ";
    }
    if ($modele != "") {
       $requete .= "AND Modele= '".$modele."' ";
    }
    if ($format != "") {
       $requete .= "AND Format = '".$format."' ";
    }
     
    if ($type != "") {
       $requete .= "OR Type= '".$type."' ";
    }
    if ($marque != "") {
       $requete .= "OR Marque= '".$marque."' ";
    }
    if ($modele!= "") {
       $requete .= "OR Modele= '".$modele."' ";
    }
    if ($format != "") {
       $requete .= "OR Format= '".$format."' ";
    }
     
    $res = mysql_query($requete) or die(mysql_error());
    while ($donnees = mysql_fetch_array($res)) // On fait une boucle pour lister les résultats
    {
    ?>
     
    <tr>
    <td><?php echo $donnees['ID'];?></td>
    <td><?php echo $donnees['Type'];?></td>
    <td><?php echo $donnees['Marque']; ?></td>
    <td><?php echo $donnees['Modele']; ?></td>
    <td><?php echo $donnees['Format']; ?></td>
    <td><?php echo $donnees['Commentaires']; ?></td>
    </tr>
     
     
    <?php
    }
    echo"Pour faire une nouvelle recherche";
    // Fin de la boucle
    ?>
         <html>
        <body>
     <form action="f_recherche_famille2.html" method="post">
     <p><input type="submit"style="width: 130px" value=" Cliquer ICI " /></p>;
    </form>
    <form action="export.php" method="post">
     <p><input type="submit"style="width: 130px" value=" Exporter " /></p>;
    </form>
    <form action="index.php" method="post">
    			<p><input type="submit"style="width: 130px"  value="Fermer" /></p>
    		</form>
    	    </body>
        </html>
    enfait dans le fichier recherche.php qui donne les résultats de la recherche, y'a un bouton(Exporter) qui apparaît avec ces résultats et qui peut exporter ces derniers vers excel.
    mon script excel.php
    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
    <?php
        // à elle seule, la ligne suivante suffit à envoyer le résultat du script dans une feuille Excel
        header("Content-type: application/vnd.ms-excel");
        // la ligne suivante est facultative, elle sert à donner un nom au fichier Excel
       header("Content-Disposition: attachement; filename=c:\exportexl\ fichier_excel.xls");
      $DBHost="localhost";
      $DBUser="root";
      $DBPass="";
    $DBName="valneo";
       // La suite est une simple requête php-mysql. On interroge la table utilisée dans l'exemple précédent.
       $bdd = mysql_connect($DBHost,$DBUser,$DBPass);
       mysql_select_db($DBName,$bdd);
       // notez la présence du caractère arobase (@) , en cas d'erreur,
      // il empêche PHP d'écrire un message d'erreur sur le navigateur
        $requete=@mysql_query('SELECT* FROM pc ');
        // on vérifie le contenu de  la requête ;
        if (@mysql_num_rows($requete) ==0)
            {   // si elle est vide, on en informe l'utilisateur à l'aide d'un Javascript
                print "<script> alert('La requête n\'a pas abouti !')</script>";
            }
     
       // construction du tableau HTML
      print '<table border=1>
                <!-- impression des titres de colonnes -->
                 <TR><TD>ID</TD><TD>Marque</TD><TD>Modele</TD></TR><TR>';
     
        // lecture du contenu de la requête avec 2 boucles imbriquées; par ligne et par colonne
        for ($ligne=0 ; $ligne<@mysql_numrows($requete);$ligne++)
         {
             for ($colonne = 0;$colonne < 3 ; $colonne++)
                  {
                     print '<TD>' .mysql_result($requete , $ligne,$colonne).  '</TD>';
                  }
           print '</TR>';
          }
        print '</TABLE>';
        mysql_close();
     
    // on informe l'utilisateur de la réussite
       if (@mysql_num_rows($requete) >0)
            {
                print "<script> alert('La table est bien mise à jour !')</script>";
            }
    ?>
    ce que je veux comment le programme excel.php va savoir qu'on est dans tell recherche et telle table autrement dit comment adapter cette ligne pour qu elle soit généralisée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete=@mysql_query('SELECT* FROM pc ');
    je sais pas si je suis claire ou pas.merci beaucoup

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    bonjour j'ai trouvé grâce à votre aide mais j'ai toujours un petit souci.quand j'envoi les données par la méthode $_SESSION je récupère dans la tableau Excel que les données de la ligne correspondant mon clique( j'ai un petit lien "export vers Excel" sur chaque ligne) et moi je veux qu'il y a un seul bouton (lien) quand je clique dessus il me donne toutes les données sur tableau Excel.mecri
    voila mon fichier qui traite la recherche (recherche.php)et qui donne les donnée se forme 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
    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
    <?php
    session_start();
     
    // on se connecte à notre base
    $base = mysql_connect ('localhost', 'root', '');
    mysql_select_db ('stock', $base) ;
     
    ?>
    <style>
    	body {background-color: #DAFFA8; background-image: url(imagefond.jpg);background-repeat: repeat-y;background-position: left top;}
    	</style>
    <center><table border bgcolor="#7FFF00"><tr>
      <CAPTION><strong>Produits disponibles dans le stock</strong></CAPTION>
    <th>ID</th>
    <th>Marque</th>
    <th>Processeur</th>
    <th>Commentaires</th>
     
    </tr>
     
    <?php
    	$marque=mysql_real_escape_string(htmlspecialchars ($_POST['Marque']));
    	$produit=mysql_real_escape_string(htmlspecialchars ($_POST['Produit']));
    	$processeur=mysql_real_escape_string(htmlspecialchars ($_POST['Processeur']));
    	$frequence=mysql_real_escape_string(htmlspecialchars ($_POST['Frequence']));
     
    $requete = "SELECT * FROM $produit WHERE 1=1 ";
    $_SESSION['produit'] = "$produit";
    if ($processeur != "") {
       $requete .= "AND Processeur= '".$processeur."' ";
    }
    if ($marque != "") {
       $requete .= "AND Marque = '".$marque."' ";
    }
     
    if ($processeur != "") {
       $requete .= "OR Processeur= '".$processeur."' ";
    }
    if ($marque != "") {
       $requete .= "OR Marque = '".$marque."' ";
    }
     
    $res = mysql_query($requete) or die(mysql_error());
    while ($donnees = mysql_fetch_array($res)) // On fait une boucle pour lister les résultats
    {
    ?>
     
    <tr>
    <td><?php echo $donnees['ID'];?></td>
    <td><?php echo $donnees['Marque']; ?></td>
    <td><?php echo $donnees['Processeur'];?></td>
    <td><a href="export_excel.php?id=<?php echo $donnees['ID'];?>&marque=<?php echo $donnees['Marque'];?>&processeur=<?php echo $donnees['Processeur'];?>&produit=<?php echo $_SESSION['produit'];?>;">Exporter vers Excel</a></td>
     
    </tr>
     
    <?php
    }// Fin de la boucle
    echo"Pour faire une nouvelle recherche";
    ?>
    et voila le fichier qui exporte vers Excel.(export_excel.php)
    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
    <?php
    session_start();
     print_r($_GET);
    //$id=intval($_GET['id']);
     $marque=$_GET['marque'];
      $processeur=$_GET['processeur'];
      $produit=$_GET['produit'];
        // à elle seule, la ligne suivante suffit à envoyer le résultat du script dans une feuille Excel
        header("Content-type: application/vnd.ms-excel");
        // la ligne suivante est facultative, elle sert à donner un nom au fichier Excel
       header("Content-Disposition: attachement; filename=c:\exportexl\ fichier_excel.xls");
      // require_once("conf_int.php");
      $DBHost="localhost";
      $DBUser="root";
      $DBPass="";
    $DBName="stock";
       // La suite est une simple requête php-mysql. On interroge la table utilisée dans l'exemple précédent.
       $bdd = mysql_connect($DBHost,$DBUser,$DBPass);
       mysql_select_db($DBName,$bdd);
       // notez la présence du caractère arobase (@) , en cas d'erreur,
      // il empêche PHP d'écrire un message d'erreur sur le navigateur
        $requete=@mysql_query("SELECT ID,'".$marque."','".$processeur."',commentaires FROM $produit ");
        // on vérifie le contenu de  la requête ;
        if (@mysql_num_rows($requete) ==0)
            {   // si elle est vide, on en informe l'utilisateur à l'aide d'un Javascript
                print "<script> alert('La requête n\'a pas abouti !')</script>";
            }
     
       // construction du tableau HTML
      print '<table border=1>
                <!-- impression des titres de colonnes -->
                 <TR><TD>ID</TD><TD>Marque</TD><TD>Processeur</TD><TD>Commentaires</TD></TR><TR>';
     
        // lecture du contenu de la requête avec 2 boucles imbriquées; par ligne et par colonne
        for ($ligne=0 ; $ligne<@mysql_numrows($requete);$ligne++)
         {
             for ($colonne = 0;$colonne < 4 ; $colonne++)
                  {
                     print '<TD>' .mysql_result($requete , $ligne,$colonne).  '</TD>';
                  }
           print '</TR>';
          }
        print '</TABLE>';
        mysql_close();
     
    // on informe l'utilisateur de la réussite
       if (@mysql_num_rows($requete) >0)
            {
                print "<script> alert('La table est bien mise à jour !')</script>";
            }
    ?>
    je vous signale que les programmes marchent et ils donnent des résultats mais il faut qu il y'a un seul lien et qui donne toutes les données .Merci beaucoup

Discussions similaires

  1. Exporter les données vers excel sans passer par un agent
    Par debdev dans le forum Lotus Notes
    Réponses: 3
    Dernier message: 04/10/2013, 00h10
  2. [MySQL] Exporter des données vers Excel depuis php
    Par berti dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/03/2008, 14h26
  3. [En cours]Exporter des données vers Excel
    Par Muhad'hib dans le forum Contribuez
    Réponses: 2
    Dernier message: 12/01/2006, 14h25
  4. exporter des données vers EXCEL!
    Par JauB dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 25/11/2005, 15h13
  5. Export de données vers Excel
    Par psykot63 dans le forum Access
    Réponses: 2
    Dernier message: 03/01/2005, 12h04

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