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. 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
          1. merci alain,

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

            merci encore pour ta patience