одновременная загрузка с php, извлечение информации из mysql
видите ли, у меня есть код в php, который делает запросы к базе данных, где есть идентификатор, представляющий человека и другую запись задолженности, и по завершении он генерирует загрузку документа в word с соответствующей информацией, я попытался увидеть, что все работает для 1 записи, и потому, что он делает это правильно, проблема возникает, когда я обобщаю и делаю это для всех записей в моей базе данных,то есть для всех людей, которые у меня есть, но только для меня он загружает файл, один из 1-го человека, который он находит в базе данных, а для других людей он больше этого не делает, я использую "while ($row=mysql_fetch_array($result))", чтобы извлечь информацию, и внутри этого while я делаю загрузку.
я использую phpword для создания документа и загрузки.
-----------------------------------------------------------
<?php
require_once dirname(__FILE__).'/PHPWord-master/src/PhpWord/Autoloader.php';
\PhpOffice\PhpWord\Autoloader::register();
use PhpOffice\PhpWord\TemplateProcessor;
//conexion con la Bd llamada "datosgenrales" y "adeudos"
$queryID="SELECT numCuenta FROM `datosgenerales` ";
$cantidadID = mysql_query($queryID, $con);
while ($IDperson = mysql_fetch_array($cantidadID)) {
$IDperson = mysql_fetch_array($cantidadID);
$IDpersona= $IDperson['numCuenta'];
$queryCuenta = "SELECT count(*) from adeudos where cuentas='".$IDpersona."'";
$queryAdeudos = "SELECT adeudos.total as dineroTotal, adeudos.concepto as tipoAdeudo
FROM adeudos, datosgenerales
WHERE adeudos.cuentas = '".$IDpersona."'
AND datosgenerales.numCuenta ='".$IDpersona."'";
$nombre = $IDpersona; //variable para ponerla en el documento word
$resulCuenta = mysql_query($queryCuenta, $con);
$cuent=intval($cuentaRep[0]);
$templateWord = new TemplateProcessor('plantilla1.docx'); //plantilla word
// --- Asignamos valores a la plantilla
$templateWord->setValue('nombre',$nombre); //imprime en plantilla word
// --- Guardamos el documento
$templateWord->saveAs('notificacion'.$aux.'.docx');
header("Content-Disposition: attachment; filename=notificacion".$aux.".docx; charset=iso-8859-1");
echo file_get_contents('notificacion'.$aux.'.docx');
}
?>
1 answers
Это невозможно, потому что протокол http предназначен для загрузки одного файла за раз. Одним из возможных решений является засунуть все файлы в zip , который вы можете сделать внутри while, и когда вы закончите, вы отправите вновь созданный zip http://php.net/manual/en/class.ziparchive.php