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. 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 
      
      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. 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. 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