Я пытаюсь получить данные, используя php код на базовой странице drupal 8.
Я не могу извлечь все данные.
*В моем загруженном файле Excel отсутствует 1008 * 120 строк
Я не могу просто выполнить запрос и скопировать его в Excel, потому что данные слишком велики, у меня приблизительно 19 000 строк.
Есть предложения?
Вот код -
<?php
//$count=0;
$connection = \Drupal::database();
$connection->query("SELECT @@sql_mode"); //for group by (php 7.0)
$connection->query("set @@sql_mode=''"); //for group by (php 7.0)
$query = $connection->select('<Table>', 'm');
$query->distinct()->fields('m', ['field_x','field_x','field_x','field_x','field_x','field_x','field_x','field_x','field_x','field_x','field_x','field_x','field_x','field_x']);
$query->condition('status', '1' , '=');
$query->leftJoin('<your_table>', '<alias_name>', '<on_condition>';
$query->leftJoin('<your_table>', '<alias_name>', '<on_condition>');
$query->condition('m.status', '1' , '=');
$res = $query->execute()->fetchAll();
$filename = 'File.csv';
$filepath = '<path>'.$filename;
$filepath = fopen($filepath, 'w');
fputcsv($filepath, array('field_x' ,'field_x','field_x','field_x','field_x', 'field_x','field_x','field_x', 'field_x','field_x', 'field_x','field_x', 'field_x','field_x','field_x','field_x','field_x'));
foreach($res as $result){
//$count++;
fputcsv($filepath,
array(
$result->field_x,
$result->Subfield_xcon_WTNDocId,
$result->field_x,
$result->field_x,
$result->field_x,
$result->field_x,
$result->field_x,
$result->field_x,
$result->field_x,
$result->field_x,
$result->field_x,
$result->Mfield_xon,
$result->field_x,
$result->field_x,
$result->field_x,
$result->field_x,
));
}
$fname = 'File.csv';
$path = 'sites/default/files/'.$fname;
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($path).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($path));
flush();
readfile($path);
unlink($path);
?>