Member 13399302 Ответов: 2

Преобразование данных SQL в excel


Я следую инструкциям на youtube о преобразовании данных MYSQL в excel, кстати, я попробовал их кодирование с их базой данных и ее работой. Но когда я меняю базу данных в этом кодировании на свою собственную базу данных, она не работает




*Это кодирование, за которым я слежу с youtube*

data.php





Пользователь











excel.php

<? php
$connect = mysqli_connect("localhost", "root", "", " test_db");
$выход = '';
if(isset ($_POST ["export_excel"]))
{

$среда SQL = "выбрать * от того, tbl_sample по ID по убыванию";
$result = mysqli_query($connect, $sql);
if (mysqli_num_rows ($result) > 0)
{

$выход .= '
< table class= "table" bordered= " 1"›

Айди
имя
фамилия

';
while ($row = mysqli_fetch_array($result))
{

$выход .= '

'.$идентификатор строки"]. '
'. $row ["first_name"].'
'. $row ["last_name"].'

';
}
$выход .= '';
заголовок ("Content-Type: application/xls");
заголовок ("Content-Disposition: attachment; filename=download.xls");
Echo $output;
}
}

Что я уже пробовал:

Это кодирование, которое я меняю
data.php









Пользователь











excel.php

<? php
$connect = mysqli_connect("localhost", "root","", " flight");
$выход = '';
if(isset ($_POST ["export_excel"]))
{

$sql = " SELECT * FROM customer ORDER BY id DESC";
$result = mysqli_query($connect, $sql);
if (mysqli_num_rows($result) > 10)
{

$выход .= '
< table class= "table" bordered= " 1"›








';
while ($row = mysqli_fetch_array($result))
{

$выход .= '









';
}
$выход .= '
Айди имя клиента Клиентами СК: Государственный Заказчик : Электронная Почта Клиента Адрес Клиента
'.$идентификатор строки"]. ' '. $row ["CustomerID"].' '. $row ["CustomerName"].' '. $row ["CustomerNric"].' '.$строка["государство"]. ' '.$строка["письмо"]. ' '. $row ["адрес"].'
';
заголовок ("Content-Type: application/xls");
заголовок ("Content-Disposition: attachment; filename=download.xls");
Echo $output;
}
}

2 Ответов

Рейтинг:
2

W∴ Balboos, GHB

Помимо комментариев в ответе Йохена Амдта выше, есть еще одна вещь, которую следует рассмотреть. PHP имеет возможность открывать различные типы баз данных (и других объектов) через ODBC. Вам действительно нужен соответствующий драйвер ODBC в вашей системе, и такой драйвер существует для Excel. Я использую это с шаблонной таблицей и записываю в нее строки. На самом деле вы открываете файл Excel, как если бы это была база данных, и пишете в нее, как в базу данных. Вы также можете читать, вставлять и редактировать строки (вы не можете удалить строку). Вы можете начать [здесь]

Существует также создание вашего Excel в виде XML. Это было доступно в течение некоторого времени - и, изучив это, вы можете расширить свои возможности на другие продукты MS, такие как Word. Преимущество этого заключается в том, что вы можете создать файл без какого - либо драйвера или даже владеть Excel-это чистый текстовый файл, который Excel поймет. В настоящее время я использую оба из них для производства, ODBC в основном для FoxPro->SQL, XML для Excel и Word.


Рейтинг:
1

Jochen Arndt

"Не работает" не является полезным описанием проблемы.

Вы всегда должны проверять ошибки, возвращаемые из используемых функций. Если код из видео этого не делает, это плохой код. Используйте официальный документация PHP[^] вместо этого и прочитайте страницы для используемых функций. Они помогают вам понять, что делается, и содержат пример кода.

Однако взгляните на эту строку:

if(mysqli_num_rows($result) > 10)
Ничего не будет напечатано, если ваша таблица содержит менее 10 наборов записей.

[РЕДАКТИРОВАТЬ]
Я попытался отредактировать ваш вопрос, чтобы применить форматирование для лучшего чтения. Но кажется, что некоторые материалы уже теряются, когда вы вставляете код сюда, и ручное редактирование кода может изменить его таким образом, что он не будет соответствовать тому, что вы написали.

Но попробовав, я обнаружил еще одну ошибку:
Выходные данные для строк находятся за пределами приведенного выше while петля так, чтобы ничего не печаталось. Это должно быть что-то вроде
while($row = mysqli_fetch_array($result))
{
// Remove these 2 lines from your code
//$output .= '';
//}
    $output .= 'Id	Customer Name	Customer IC:	Customer State:	Customer Email	Customer Address
    '.$row["id"]. '	'.$row["CustomerID"]. '	'.$row["CustomerName"]. '	'.$row["CustomerNric"]. '	'.$row["State"]. '	'.$row["Email"]. '	'.$row["Address"];
// Add the closing parenthese here
}

Обратите внимание также, что использование нескольких пробелов в выводе HTML бесполезно. Они будут пропущены при визуализации браузером. Поскольку вы используете HTML-таблицы, вы должны встроить ячейки в соответствующие <tr> (полный ряд) и <td> (каждая ячейка) теги:
// Print header here
$output .= "<tr>";
$output .= "<th>Id</th>";
// and so on for the other columns
$output .= "</tr>";
// Print content row wise
while($row = mysqli_fetch_array($result))
{
    $output .= "<tr>";
    $output .= "<td>".$row["id"]."</td>";
    // and so on for the other columns
    $output .= "</tr>";
}

Вы также должны знать HTML при создании HTML-вывода с помощью PHP.
[/РЕДАКТИРОВАТЬ]