У меня есть таблица, которая показывает некоторые данные mysql, каждая запись имеет флажок для выбора отдельных записей, теперь я хочу иметь возможность экспортировать выбранные записи в файл xml или txt , я пробовал это:Экспорт mysql в txt/xml файл и загрузка его
<?php
if ($_POST['exporttxt']) {
for ($i = 0; $i < count($_POST['checkbox']); $i++) {
$export_id = $checkbox[$i];
$sql = "SELECT * FROM table WHERE id='$export_id'";
$result = mysql_query($sql);
}
$output = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<root>\n";
if ($result->num_rows > 0) {
while ($myrow = $result->fetch_assoc())
{
$output .= "\t<row>\n";
foreach ($myrow as $_name => $_value)
{
$output .= "\t\t<$_name>$_value</$_name>\n";
}
$output .= "\t</row>\n";
}
}
$output .= "</root>";
}
header('content-type: text/xml');
header('content-disposition: attachment; filename=data_export.xml');
echo $output;
exit;
?>
Но это вообще не сработало, никаких намеков?
Я изменил код немного, я теперь использую это
<?php
if ($_POST['exporttxt']) {
for($i=0;$i<count($_POST['checkbox']);$i++){
$export_id = $checkbox[$i];
$text = mysql_query("SELECT code FROM ticket WHERE id='$export_id'");
$text = mysql_fetch_assoc($text);
$text = $text["code"];
ob_end_flush();
header("Content-type: text/plain");
header("Content-disposition: attachment;filename=\"filename.txt\"");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");
header("Content-Length: ".strlen($output).";\n");
echo($text);
}
}
?>
я теперь получить надлежащий выход на моем экране, но он не будет предлагать мне скачать файл?
Как не работает? – Repox
вы можете эхо $ export_id, чтобы убедиться, что вы попадаете в цикл. Кроме того, это не очень хорошая идея для count в аргументах for. Установите $ count = count ($ _ POST ['checkbox']) перед циклом for вы получите лучшую производительность. – Robert
echoing $ export_id работает - отчасти, он показывает идентификаторы из отмеченных флажков, хотя только 1, почему это так? но кроме этого, если я выберу ID 305, например, и нажмите «Отправить», он отобразит «305», так что это должно быть хорошо? – user990767