在php中以pdf格式将2个查询呈现到2个单独的表中
我有一段代码,可以将mysql数据库中的查询数据呈现为pdf格式。我希望数据显示在同一个pdf中的两个表中。我的代码正在执行所有这些操作,但它将表呈现为一个,两个表之间没有空格。我怎样才能把这些桌子分开 以下是表的呈现方式: 这是我的密码:在php中以pdf格式将2个查询呈现到2个单独的表中,php,mysql,Php,Mysql,我有一段代码,可以将mysql数据库中的查询数据呈现为pdf格式。我希望数据显示在同一个pdf中的两个表中。我的代码正在执行所有这些操作,但它将表呈现为一个,两个表之间没有空格。我怎样才能把这些桌子分开 以下是表的呈现方式: 这是我的密码: <?php if ( isset($_GET["pdf"]) && isset($_GET['payment_request_id'])
<?php
if
(
isset($_GET["pdf"]) &&
isset($_GET['payment_request_id'])
)
{
require_once 'pdf.php';
include('database_connection.php');
include('function.php');
//-------------------------------------------------------------------------------------------------------------------------------
$output = '';
$statement = $connect->prepare
(
"
SELECT
*
FROM
tbl_payment_request
WHERE
payment_request_id = :payment_request_id
LIMIT 1
"
)
;
$statement->execute
(
array
(
':payment_request_id' => $_GET["payment_request_id"]
)
)
;
$result = $statement->fetchAll();
foreach($result as $row)
{
//Payment Details Table Rendering ------------------------------------------------------------------------------------------------
$output .=
'
<table width="100%" border="1" cellpadding="5" cellspacing="0">
<tr>
<th>Payment Description</th>
<th>Vehicle Reg</th>
<th>Ref Number</th>
<th>Amount</th>
</tr>
'
;
$statement = $connect->prepare
(
"
SELECT
*
FROM
tbl_payment_details
WHERE
payment_request_id = :payment_request_id
"
)
;
$statement->execute
(
array
(
':payment_request_id' => $_GET["payment_request_id"]
)
)
;
$payment_details_result = $statement->fetchAll();
$count = 0;
foreach($payment_details_result as $sub_row)
{
$count = $count + 1;
$output .=
'
<tr>
<td>'.$sub_row["payment_description"].'</td>
<td>'.$sub_row["reg_number_id"].'</td>
<td>'.$sub_row["ref_number"].'</td>
<td>'.$sub_row["ref_amount"].'</td>
</tr>
'
;
}
$output .=
'
<br/>
<br/>
<br/>
'
;
//Cost Sharing Table Rendering ------------------------------------------------------------------------------------------------
$output .=
'
<table width="100%" border="1" cellpadding="5" cellspacing="0">
<tr>
<th>CRS/Site</th>
<th>Protocol</th>
<th>Budget Class</th>
<th>Amount</th>
</tr>
'
;
$statement = $connect->prepare
(
"
SELECT
*
FROM
tbl_cost_sharing
INNER JOIN
tbl_crs_site ON tbl_crs_site.crs_site_id = tbl_cost_sharing.crs_site_id
INNER JOIN
tbl_protocol ON tbl_protocol.protocol_id = tbl_cost_sharing.protocol_id
LEFT JOIN
tbl_funding_source ON tbl_funding_source.funding_source_id = tbl_protocol.funding_source_id
INNER JOIN
tbl_budget_class ON tbl_budget_class.budget_class_id = tbl_cost_sharing.budget_class_id
WHERE
payment_request_id = :payment_request_id
"
)
;
$statement->execute
(
array
(
':payment_request_id' => $_GET["payment_request_id"]
)
)
;
$cost_sharing_result = $statement->fetchAll();
$count = 0;
foreach($cost_sharing_result as $sub_row)
{
$count = $count + 1;
$output .=
'
<tr>
<td>'.$sub_row["crs_site_name"].'</td>
<td>'.$sub_row["protocol_name"].'</td>
<td>'.$sub_row["budget_class_name"].'</td>
<td>'.$sub_row["cost_sharing_amount"].'</td>
</tr>
'
;
}
}
//-------------------------------------------------------------------------------------------------------------------------------
$pdf = new Pdf();
$file_name = 'PRF#'.$row["payment_request_id"].'.pdf';
$pdf->loadHtml($output);
$pdf->render();
$pdf->stream($file_name, array("Attachment" => false));
}
?>
我最终通过替换代码的这一部分解决了这个问题
$output .=
'
<br/>
<br/>
<br/>
'
;
$output=
'
'
;
与
$output=
'
'
;
表之间的
有帮助吗?上次显示$output时,我已将此设置为
,但它没有改变如何显示$output?echo$output或print$output所以您的实际问题是生成了无效的HTML(没有正确关闭表)。如果代码的结构更好,这一点会更加明显:首先,从数据库中获取数据;然后,在必要时使用它进行计算;然后,将数据格式化为HTML。
$output .=
'
</table>
<br/>
'
;