Exportation mysql vers excel via php

Résolu
Bonjour,

j'ai utilisé ce code trouvé sur le forum :

<?php

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=stat.xls");

mysql_select_db($database_affectation, $affectation);
$query_Recordset1 = "SELECT * FROM demande_balisage";
$Recordset1 = mysql_db_query($query_Recordset1, $affectation);
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalrow_Recordset1 = mysql_num_rows($Recordset1);


$tbl= " <table border='0' cellpadding='0' cellspacing='0'>
<tr bgcolor='#CCCCCC' height='40px'>
<td>employe</td>
<td>rayon</td>
<td>famille</td>
<td>date</td>
</tr>";
do {
$tbl = $tbl . "<tr>";
$tbl = $tbl . "<td>" . $row_Recordset1['employe'] . "</td>";
$tbl = $tbl . "<td>" . $row_Recordset1['rayon'] . "</td>";
$tbl = $tbl . "<td>" . $row_Recordset1['famille'] . "</td>";
$tbl = $tbl . "<td>" . $row_Recordset1['date'] . "</td>";
$tbl = $tbl . "</tr>";
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));
$tbl = $tbl . "</table>";

print $tbl ;

?>

et j'obtiens cette erreur dans mon fichier excel

"Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 3.0\www\BALISAGE\statperso.php on line 11"

3 fois ce message concernant les lignes 11, 12 et 28

ou est mon erreur?

merci
Configuration: Windows Vista / Firefox 3.5.8

5 réponses

  1. merci alain,

    c'était une erreur de ligne vide avec la déclaration des headers

    merci encore pour ta patience
    1. verifies bien que avant :

      <?php
      
      header("Content-type: application/vnd.ms-excel");
      header("Content-Disposition: attachment; filename=stat.xls"); 


      tu n'ai aucune ligne vide aucun espace

      et vérifie aussi que ton script soit bien au format UN IX (regardes dans ton editeur) et pas windows
      1. tout fonctionne bien en local (avec easyphp)

        mais en testant chez mon hébergeur j'obtiens ce message d'erreur :

        Warning: Cannot modify header information - headers already sent by (output started at /home/5078/public_html/BALISAGE/statperso.php:3) in /home/5078/public_html/BALISAGE/statperso.php on line 5

        Warning: Cannot modify header information - headers already sent by (output started at /home/5078/public_html/BALISAGE/statperso.php:3) in /home/5078/public_html/BALISAGE/statperso.php on line 6

        ensuite mon tableau s'affiche sur la page internet.

        d'ou vient le problème cette fois?

        merci
        1. merci beaucoup alain

          je venais de trouver l'erreur dans le code :

          il fallait :
          $Recordset1 = mysql_query($query_Recordset1, $affectation);

          et non:
          $Recordset1 = mysql_db_query($query_Recordset1, $affectation);

          pour te répondre ma connexion au serveur est dans un fichier séparé appelé par l'instruction
          <?php require_once('Connections/balis.php'); ?>

          merci encore
          1. si tu as cette erreur c'est que l'argument passé a cette fonction n'est pas ok, donc il y a un pb sur la requette


            mysql_select_db($database_affectation, $affectation);
            $query_Recordset1 = "SELECT * FROM demande_balisage";
            $Recordset1 = mysql_db_query($query_Recordset1, $affectation);


            ou est la connexion au serveur ?

            fais plutôt comme ça:
            //tes codes de connexion
            $host=".......";
            $login=".......";
            $pass="........";
            //nom de la base
            $database_affectation="..........";
            
            $cnx=mysql_connect($host,$login,$pass) or die ("pb connection serveur ".mysql_error());
            $db=mysql_select_db($database_affectation) or die ("pb selection base ".mysql_error());
            $query_Recordset1 = "SELECT * FROM demande_balisage";
            $Recordset1 = mysql_query($query_Recordset1) or die ("pb requette ".mysql_error()); //tu as deja selectionne la base donc mysql_query suffit