Результат запроса postgresql в csv также печатает html-код текущей страницыPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Результат запроса postgresql в csv также печатает html-код текущей страницы

Сообщение Anonymous »

Я пытаюсь вывести результаты запроса PostgreSQL в формат CSV с помощью PHP.

На главной странице есть ссылка, которая отправляет инструкции 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");
}
Не могли бы вы сказать мне, использую ли я правильный подход для экспорта результатов запроса в CSV и что в моем коде приводит к потоковой передаче всего HTML-кода?

p>

Спасибо


Подробнее здесь: https://stackoverflow.com/questions/167 ... -code-also
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»