Bonjour, aujourd’hui je vais vous montrer comment exporter le résultat d’une requête MySQL en Excel en utilisant PHP.
[pastacode lang= »php » manual= »%3C%3Fphp%0A%2F%2F%20Information%20de%20connexion%20%C3%A0%20notre%20base%20de%20donn%C3%A9es%0Adefine(‘HOST’%2C’localhost’)%3B%20%2F%2F%20adresse%20du%20serveur%20MySQL%0Adefine(‘USER’%2C’root’)%3B%20%2F%2F%20Utilisateur%20de%20notre%20Serveur%20MySQL%0Adefine(‘PASSWORD’%2C »)%3B%20%2F%2F%20%20Mot%20de%20passe%20de%20l’utilisation%20MySQL%0Adefine(‘DATABASE’%2C’geschools’)%3B%20%2F%2F%20Nom%20de%20la%20Base%20de%20donn%C3%A9es%0A%0A%2F%2F%20Ma%20requ%C3%AAte%20SQL%20(Vous%20pouvez%20modifier%20la%20requete%20selon%20la%20structure%20de%20votre%20table%0A%24sql%3D’SELECT%20nom%2Cprenom%2Csexe%2Cadresse%2Cville%2Ccontact%20FROM%20clients’%3B%0A%0A%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%20NE%20MODIFIER%20PAS%20CE%20QUI%20SUIT%20%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%0A%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%09%09%09%09%09%09%09%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%0A%2F%2F%20Connexion%20au%20Serveur%20MySQL%0A%24Connect%20%3D%20%40mysql_connect(HOST%2C%20USER%2C%20PASSWORD)%20or%20die(%22Impossible%20de%20se%20connecter%20%C3%A0%20MySQL%3A%3Cbr%3E%22%20.%20mysql_error()%20.%20%22%3Cbr%3E%22%20.%20mysql_errno())%3B%0A%2F%2F%20Select%20de%20la%20Base%20de%20donn%C3%A9e%20MySQL%0A%24Db%20%3D%20%40mysql_select_db(DATABASE%2C%20%24Connect)%20or%20die(%22Impossible%20de%20choisir%20la%20Base%20de%20Donn%C3%A9e%3A%3Cbr%3E%22%20.%20mysql_error().%20%22%3Cbr%3E%22%20.%20mysql_errno())%3B%0A%2F%2F%20Ex%C3%A9cution%20de%20la%20Requ%C3%AAte%20POST%20ou%20GET%0A%24result%20%3D%20%40mysql_query(%24sql%2C%24Connect)%20or%20die(%22Impossible%20d%5C’ex%C3%A9cuter%20la%20requ%C3%AAte%3A%3Cbr%3E%22%20.%20mysql_error().%20%22%3Cbr%3E%22%20.%20mysql_errno())%3B%20%20%20%20%0A%24file_ending%20%3D%20%22xls%22%3B%0A%2F%2FInformation%20de%20l%5C’ent%C3%AAt%20de%20notre%20navigateur%0Aheader(%22Content-Type%3A%20application%2Fxls%22)%3B%20%20%20%20%0Aheader(%22Content-Disposition%3A%20attachment%3B%20filename%3DExportation%22.date(‘d-m-Y’).%22.xls%22)%3B%20%20%0Aheader(%22Pragma%3A%20no-cache%22)%3B%20%0Aheader(%22Expires%3A%200%22)%3B%0A%2F*******Debut%20du%20formatage%20d’excel*******%2F%20%0A%2F%2F%20Definition%20du%20s%C3%A9parateur%20de%20colonne%20dans%20excel%0A%24sep%20%3D%20%22%5Ct%22%3B%20%0A%2F%2F%20D%C3%A9but%20d’impression%20des%20noms%20des%20colonnes%20MySQL%0Afor%20(%24i%20%3D%200%3B%20%24i%20%3C%20mysql_num_fields(%24result)%3B%20%24i%2B%2B)%20%7B%0Aecho%20mysql_field_name(%24result%2C%24i)%20.%20%22%5Ct%22%3B%0A%7D%0Aprint(%22%5Cn%22)%3B%20%20%20%20%0A%2F%2FFin%20d’impression%20de%20colonnes%0A%2F%2F%20Debut%20de%20la%20boucle%0A%20%20%20%20while(%24row%20%3D%20mysql_fetch_row(%24result))%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%24schema_insert%20%3D%20%22%22%3B%0A%20%20%20%20%20%20%20%20for(%24j%3D0%3B%20%24j%3Cmysql_num_fields(%24result)%3B%24j%2B%2B)%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if(!isset(%24row%5B%24j%5D))%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24schema_insert%20.%3D%20%22NULL%22.%24sep%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20elseif%20(%24row%5B%24j%5D%20!%3D%20%22%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24schema_insert%20.%3D%20%22%24row%5B%24j%5D%22.%24sep%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24schema_insert%20.%3D%20%22%22.%24sep%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%24schema_insert%20%3D%20str_replace(%24sep.%22%24%22%2C%20%22%22%2C%20%24schema_insert)%3B%0A%20%20%20%20%20%20%20%20%24schema_insert%20%3D%20preg_replace(%22%2F%5Cr%5Cn%7C%5Cn%5Cr%7C%5Cn%7C%5Cr%2F%22%2C%20%22%20%22%2C%20%24schema_insert)%3B%0A%20%20%20%20%20%20%20%20%24schema_insert%20.%3D%20%22%5Ct%22%3B%0A%20%20%20%20%20%20%20%20print(trim(%24schema_insert))%3B%0A%20%20%20%20%20%20%20%20print%20%22%5Cn%22%3B%0A%20%20%20%20%7D%20%20%20%0A%0A%3F%3E%0A%0A » message= »Exporter le Résultat MySQL en Excel avec PHP » highlight= » » provider= »manual »/]3 réflexions au sujet de « Comment exporter le résultat d’une requête MySQL en Excel avec PHP »
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.
Bonjour Pacôme,
J’ai trouvé votre feuille php en cherchant justement comment faire cet export pour une requête sur certaines données de mon Forum.
Il tourne avec une base et un serveur de données phpmyadmin en PHP 7. Il m’a donc fallu adapter votre code pour Mysqli, ce que j’ai fait sans trop de difficultés à un détail : je n’arrive pas à afficher le nom des tables en ligne. La boucle les affiche en colonne.
mysql_field_name étant obsolète sur php7, je l’ai remplacé par mysqli_fetch_field_direct
[pastacode lang= »php » manual= »for%20(%24i%20%3D%200%3B%20%24i%20%3C%20mysqli_num_fields(%24result)%3B%20%24i%2B%2B)%0A%20%20%20%20%20%20%20%20%7B%0A%09%24fieldinfo%20%3D%20mysqli_fetch_field_direct(%24result%2C%24i)%3B%20%20%20%0A%09%20%20%20%20printf(%22%25s%5Cn%22%2C%24fieldinfo-%3Ename).%20%22%5Ct%22%20%3B%0A%09%7D » message= » » highlight= » » provider= »manual »/]
Vous auriez une solution à me proposer ?
Papy
Quoi de mieux que l’auto-support 😉
A force d’essayer, j’ai trouvé la solution et la voici donc.
[pastacode lang= »php » manual= »%09%09for%20(%24i%20%3D%200%3B%20%24i%20%3C%20mysqli_num_fields(%24result)%3B%20%24i%2B%2B)%0A%09%09%7B%0A%09%09%24fieldinfo%20%3D%20mysqli_fetch_field_direct(%24result%2C%24i)%3B%20%20%20%0A%09%20%20%20%20%24name%20%3D%20%24fieldinfo-%3Ename%3B%0A%09%09echo%20%24name%20.%20%22%5Ct%22%3B%0A%09%09%7D%0A%09%09print%20%22%5Cn%22%3B%0A%09%09″ message= » » highlight= » » provider= »manual »/]
Merci encore pour ce code bien utile.
Génial, suis ravis que vous ailliez trouver la solution si vite. Si vous avez d’autre besoin faite le moi savoir.