Экспорт из sql в Excel с помощью php

#php #sql #excel

#php #sql #excel

Вопрос:

Я пытаюсь экспортировать данные sql в Excel с помощью php. Это код:

 <div>
<?php 
    $conn = mysqli_connect("localhost","scardma_scard","Scard2020@","scardma_scard_platform");
    $query = 'SELECT ut.id, ut.nom, ut.prenom FROM utilisateurs ut WHERE ut.id_societe ='.$_GET['id'];
    $result = mysqli_query($conn,$query);
?>
<table style="display:none;" border="2px solid black">
    <tr>
        <th>Id</th>
        <th>Url</th>
    </tr>
    
</table>
<?php 
    if ($query == true) {
        header("Content-type: application/vnd.ms-excel; name='excel'");
        header("Content-Disposition: attachment; filename=exportfile.xls");
        header("Pragma: no-cache");
        header("Expires: 0");
    }
?>
 

Он отлично работает на локальном сервере, но не работает на реальном сервере, и ничего не загружается.

Любая помощь?

Комментарии:

1. Вы уже отправили заголовки при отображении <div> <table> и любой вывод. Возможно, ваш локальный сервер буферизует выходные данные, и поэтому ему удается изменять заголовки «после отправки» некоторых выходных данных

2. Обратите внимание, что ваш запрос уязвим для SQL-инъекций, и вам следует рассмотреть возможность использования подготовленных операторов

3. $query является непустой строкой, она всегда будет иметь истинное значение

4. Основываясь на приведенном выше коде, остается загадкой, где на самом деле происходит экспорт, нет логики для преобразования результатов SQL в Excel и сохранения их как exportfile.xls . В любом случае, если вы не собираетесь использовать библиотеку для создания указанных файлов Excel, вам, вероятно, проще и лучше просто экспортировать в CSV и импортировать его с помощью Excel.