我想為我的 MySQL 資料庫中包含的每個 idsample 一次生成多個單獨的 PDF 檔案。我設法生成一個 PDF 沒有任何問題,但其他 PDF 沒有生成。例如,我有 2 個表:run0112201728S52PRO, run011220178FS22LEJ
我想要這 2 個 idsamples 的單獨 PDF 檔案:28S52PRO
和8FS22LEJ
我的 idsample 包含在表名中,所以首先,我查詢和子字串以獲取我存盤到陣列中的 idsample。然后,我對每個 idsample 進行回圈以獲取姓氏和名字。
這是我所做的:
<?php
ob_start();
//Connect to MySQL database
require_once 'configphp';
require_once dirname(__FILE__).'/vendor/autoload.php';
use Spipu\Html2Pdf\Html2Pdf;
use Spipu\Html2Pdf\Exception\Html2PdfException;
use Spipu\Html2Pdf\Exception\ExceptionFormatter;
//define the name of the tables
$tablename='run01122017';
//GET idecht that we gonna cut from the result_array
$query2 = "select DISTINCT SUBSTRING(TABLE_NAME,12,8) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME like 'run01122017%'";
$result2 = mysqli_query($conn,$query2) or die ("no query");
//We store idsample into an array
while($row2 = mysqli_fetch_assoc($result2))
{
$idEcht_array[] = $row2;
}
$index=1;
$arraysizeECHT=sizeof($idEcht_array);
for($i=0;$i<=$arraysizeECHT-1;$i ){
//Query to pick up Idsample information from PAT table
$FetchIdPat="SELECT Lastname, Firstname FROM PAT WHERE idEcht='".implode(",",$idEcht_array[$i])."'";
$PerformIdPAT=mysqli_query($conn,$FetchIdPat) or die(mysqli_error($conn));
?>
<h2>TITLE OF THE DOC</h2>
<hr/>
<?php
while($rowIDPat = mysqli_fetch_assoc($PerformIdPAT)) {
?>
Pat: <?php echo $rowIDPat["Lastname"]." ".$rowIDPat["Firstname"];?>
<?php
$content = ob_get_clean();
try
{
$html2pdf = new Html2Pdf('P', 'A4', 'fr');
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$content=ob_end_clean();
$html2pdf->Output($tablename.'-'.implode(",",$idEcht_array[$i]).'-Report.pdf');
unset($html2pdf);
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}
$index ;
} //end of the while
} //end of the for
mysqli_close($conn);
?>
uj5u.com熱心網友回復:
您談到下載:請記住,http 協議允許每個請求進行一次下載。
如果您的意圖是:
- 做請求
- 生成所有pdf
- 開始所有 N 次下載
這是不可能的。
嘗試通過驗證進行除錯:
- 第一個查詢生成多個結果
- $html2pdf->Output() 使用不同的檔案名
這里按照清理后的代碼
<?php
//Connect to MySQL database
require_once 'configphp';
require_once __DIR__ . '/vendor/autoload.php';
use Spipu\Html2Pdf\Html2Pdf;
use Spipu\Html2Pdf\Exception\Html2PdfException;
use Spipu\Html2Pdf\Exception\ExceptionFormatter;
//define the name of the tables
$tablename = 'run01122017';
//GET idecht that we gonna cut from the result_array
$query2 = "select DISTINCT SUBSTRING(TABLE_NAME,12,8) as idEcht FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME like '$tablename%'";
$result2 = mysqli_query($conn, $query2) or die ("no query");
while ($row2 = mysqli_fetch_assoc($result2)) {
//Query to pick up Idsample information from PAT table
$idEcht = $row2['idEcht'];
$FetchIdPat = "SELECT Lastname, Firstname FROM PAT WHERE idEcht='$idEcht'";
$PerformIdPAT = mysqli_query($conn, $FetchIdPat) or die(mysqli_error($conn));
$content = "<h2>TITLE OF THE DOC</h2>\n<hr/>\n";
while ($rowIDPat = mysqli_fetch_assoc($PerformIdPAT)) {
$content .= "Pat: " . $rowIDPat["Lastname"] . " " . $rowIDPat["Firstname"] . "\n";
try {
$html2pdf = new Html2Pdf('P', 'A4', 'fr');
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$content = ob_end_clean();
$html2pdf->Output("$tablename-$idEcht-Report.pdf");
unset($html2pdf);
} catch (HTML2PDF_exception $e) {
echo $e;
exit;
}
} //end of the while $PerformIdPAT
} //end of the while $result2
mysqli_close($conn);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/513607.html
上一篇:違反完整性約束-Laravel