MPDF使用while打印一个表,表内和表外都有数据



我有一个pdf文档要打印,一切都很好,直到我需要一些数据从数据库出现在while循环之外。

下面是我使用的代码:
<?php
session_start();
$role = $_SESSION['userrole'];
if(!isset($_SESSION['useruid']) || $role!="administrator"){
header('Location: login.php?error=wrongrole');
}
if(!isset($_SESSION['useruid']) && $role!="tutor") {
header('location: login.php?error=wrongrole');
}
require_once ('../vendor/autoload.php');
require_once ('dbh.inc.php');
$ids =  explode(',', $_GET['report-id']);
$query_params = [];
$bind_params = '';
foreach($ids as $id){
$query_params[] = '?';
$bind_params .= 'i';
}
$stmt = $conn->prepare("SELECT * from planning 
INNER JOIN classes on classes.classesClass = planning.planningClass
WHERE planningId IN(" . implode(',', $query_params) . ")");
$stmt->bind_param($bind_params, ...$ids);
$stmt->execute();
$result = $stmt->get_result();
$mpdf = new MpdfMpdf(['tempDir' => '/tmp']);
$html = '
<img src="../img/ue-logo.jpg" height="60" width="auto" />
<img style="padding-left: 32%;" src="../img/gr-logo.jpg" height="60" width="auto" />
<img style="padding-left: 32%;" src="../img/is-logo.jpg" height="60" width="auto" />
<br /><br />
<p style="text-align: right; padding-right: 5%;"><strong>ANEXA 4</strong></p>
<br />
<p style="text-align: left;"><strong>
id 130788<br />
"Proiect “Stagii de practică pentru elevii din învățământul tehnic – calificări în servicii”, cod SMIS 130788"<br />
Centralizator activitati stagii de practica luna $MONTH
</strong></p>
<h3 style="text-align: center;">PLANIFICAREA TEMATICA LUNA $MONTH </h3>
<br/>
<table style="border:1px solid black; width:100%; border-collapse: collapse; text-align: center;">
<tr style="border:1px solid black;">
<th style="border:1px solid black;">Clasa</th>
<th style="border:1px solid black;">Domeniu/Sc Profesioanala/Liceu</th>
<th style="border:1px solid black;">Saptamana</th>
<th style="border:1px solid black;">Ora start - Ora terminare</th>
<th style="border:1px solid black;">Angajator</th>
</tr>
';
while ($row = $result->fetch_assoc()) {
$html .= '
<tr>
<td style="border:1px solid black;">' . $row['planningClass'] . '</td>
<td style="border:1px solid black;">' . $row['classesQualification'] . '</td>
<td style="border:1px solid black;">' . $row['planningWeek'] .'</td>
<td style="border:1px solid black;">' . $row['planningHourStart'] . ' - ' . $row['planningHourEnd'] . '</td>
<td style="border:1px solid black;">' . $row['planningCompany'] .'</td>
</tr>';
}
$html .= '</table>';
$mpdf->AddPage('L');
$mpdf->WriteHTML($html);

$mpdf->Output();

事情是我需要从数据库的月份出现之前,我初始化while循环。我该怎么做呢?有简单的方法吗?我把$MONTH放在我想要的循环数据所在的位置。

明白了。为此,我需要首先从结果集中获取所有数据。可以对多行使用fetch_all(),否则可以使用fetch_array()进行优化。

然后需要访问索引0处的行及其键以从所需列获取值。如果没有行或列不是SQL的一部分,则默认值可以是空字符串。

相关内容

最新更新