Bonjour à tous,
Je sais que la question a été posée un nombre incommensurable de fois, mais j'ai testé tous les scripts proposés sans qu'aucun ne marche.

Je doit donc faire un site internet où les anciens élèves d'un établissement vont entrer des renseignements dans un formulaire qui seront stockés dans une base de données. Jusqu'ici, pas de problème.

Ensuite, il faut exporter les données dans un fichier lisible par excel ( .csv pourquoi pas...), et c'est là que je bloque.
Le seul code que j'ai trouvé qui marche à peu près est celui là :

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
conf_int.php: 
#  codes administration de BDD
$DBHost="localhost";
$DBUser="xxxxxxx";
$DBPass="yyyyyyyyy";
$DBName="ASSOC";
 
export_excel.php: 
<?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: attachment; filename=E:\repertoire_destination\nom_fichier.xls");
   require_once("conf_int.php");
   // 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((DB),$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 prenom,nom,email FROM ".(TAB)." ORDER BY nom,prenom");
    // on vérifie le contenu de  la requête ;
    if (@mysql_numrows($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>Prenom</TD><TD>Nom</TD><TD>email</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_numrows($requete) >0) 
        {   
            print "<script> alert('La table est bien mise à jour !')</script>";
        } 
?>
, que j'ai un peu, disons ... "simplifié"...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<?php
    header("Content-type: application/vnd.ms-excel");
	header("Content-Disposition: attachment; filename=export.xls");
	require_once("test.php"); // Il crée un tableau en HTML qui contient les données de la base.
?>
Je sais que c'est un peu barbare. D'autant que lorsque je lance le fichier créé, il me met un message "d'erreur".

J'aimerais donc, si possible, via une requête, créer un fichier Excel.

PS : Le premier script fonctionne peut-être, je ne le comprend juste pas et ne sais pas trop quoi modifier...

Merci d'avance pour votre aide.