На главной странице есть ссылка, которая отправляет инструкции SQL в виде строки. другой функции в другом классе PHP, который, в свою очередь, принимает SQL и выполняет запрос с помощью pg_query() и возвращает наборы результатов.
Моя проблема в том, что когда я открываю CSV-файле все результаты моего запроса есть, но в конце файла я вижу HTML-код со страницы, отправившей запрос.
Я посмотрел в нескольких сообщениях StackOverflow, но безрезультатно.
Вот мой код:
Основной класс:
Код: Выделить всё
$o .= '
You can convert the result set to CSV format to be opened in Excel.
';
$link = array('op1' => 'PatternExport', 'op2' => 'outputToCSV', 'id' => $pattern_id, 'data' => $pattern_SQL);
$o .= 'Download Query Results as CSV File';
Код: Выделить всё
function outputToCSV()
{
$ptid = $this->oQS->getValue('id');
$sql = $this->oQS->getValue('data');
$href = $this->oQS->buildEncryptedURL(array('op1'=>'PatternManager', 'op2'=>'listPatterns'),'/aatsc/index.php');
$result = pg_query($sql);
// filename for download
$filename = "query_results_" . date('Ymd') . "_" . $ptid . ".csv";
$output = fopen('php://temp/maxmemory:' . (12*1024*1024), 'rw+');
foreach(pg_fetch_assoc($result,0) AS $field=>$value)
{
$output .= '' . $field . ',';
}
$output = rtrim($output,',') . "\n";
for($i=0;$i
{
foreach(pg_fetch_assoc($result,$i) AS $field=>$value)
$output .= '' . $value . ',';
$output = rtrim($output,',') . "\n";
}
header("Content-Type: application/vnd.ms-excel;");
header("Content-Disposition: attachment; filename=\"$filename\";");
header("Pragma: no-cache");
print($output);
//$href = $this->oQS->buildEncryptedURL(array('op1'=>'PatternManager', 'op2'=>'listPatterns'),'/aatsc/index.php');
//header("Location: $href");
}
p>
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/167 ... -code-also
Мобильная версия