[RESOLU] PHP : exporter une table MySQL vers un fichier Excel

Petit nouveau ! | 7 Messages

06 avr. 2016, 18:31

Bonjour à tous,

Je dois exporter les données d'une table mysql en format excel (csv). J'utilise ce petit script.

L'excel s'ouvre bien, en revanche les valeurs qui s'affichent dans l'excel sont les messages d'erreurs suivants #-o

Code : Tout sélectionner

<br /> <b>Warning</b>: mysqli_close() expects exactly 1 parameter, 0 given in <b>C:\xampp\htdocs\projet_cci_annee\excel1.php</b> on line <b>8</b><br /> <br /> <b>Notice</b>: Use of undefined constant MYSQL_NUM - assumed 'MYSQL_NUM' in <b>C:\xampp\htdocs\projet_cci_annee\excel1.php</b> on line <b>10</b><br /> <br /> <b>Warning</b>: mysqli_fetch_array() expects parameter 2 to be long, string given in <b>C:\xampp\htdocs\projet_cci_annee\excel1.php</b> on line <b>10</b><br />

Code : Tout sélectionner

<?php include_once "connexion.php"; //on exporte la table sous forme d'un tableau de la requete précedante $result = mysqli_query($database, "SELECT * FROM Questionnaire" ) or die('Erreur SQL !<br />'.$requete.'<br />'.mysqli_error()); mysqli_close(); $montablo = array(); while($row = mysqli_fetch_array($result, MYSQL_NUM)) { $montablo[] = implode("t", $row); } // on formate le fichier CSV $montablo = implode("rn", $montablo); $datestamp = date("Y-m-d"); $filename = $datestamp."_table.csv"; // on insère les en-têtes Excel header("Content-Disposition: attachment; filename=$filename"); header("Content-Type: application/vnd.ms-excel"); // et on exporte le fichier echo $montablo; ?>
Merci d'avance.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

06 avr. 2016, 20:12

Bonjour,

Ces messages d'erreurs sont pourtant très explicites !

Traduis les nous en français et dit nous ce que tu en comprends.
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 7 Messages

06 avr. 2016, 23:17

Oui en effet j'ai compris mon erreur, il suffit de lire le manuel php :)

Voila mon code final, qui fonctionne.

Code : Tout sélectionner

<?php include_once "connexion.php"; //on exporte la table sous forme d'un tableau $result = mysqli_query($database, "SELECT TitQuest FROM Questionnaire" ) or die('Erreur SQL !<br />'.$requete.'<br />'.mysqli_error()); mysqli_close($database); $montablo = array(); while($row = mysqli_fetch_array($result, MYSQLI_NUM)) { $montablo[] = implode("t", $row); } // on formate le fichier CSV $montablo = implode(" \r\n", $montablo); $datestamp = date("Y-m-d"); $filename = $datestamp."_table.csv"; // on insère les en-têtes Excel header("Content-Disposition: attachment; filename=$filename"); header("Content-Type: application/vnd.ms-excel"); // et on exporte le fichier echo $montablo; ?>