[英]How do I output data from a mysql database in php correctly
我無法通過php腳本以pdf文檔的形式顯示來自mysql數據庫的數據。 我弄對了,但是運行輸出時,沒有顯示數據庫中的列標題不顯示。 此外,我的桌子似乎被中途截斷了。 有人可以為我提供正確尺寸的幫助,以顯示完整的表格記錄嗎? 謝謝。
這是我的代碼,用於在php頁面上以pdf格式輸出數據
$db_handle = new DBController();
$result = $db_handle->runQuery('select p.*, s.sname as state_name,
l.lname as lga_name from pat_reg p INNER join lga l on p.lga_id =
l.lga_id INNER join states s on p.state_id = s.state_id');
$header = $db_handle->runQuery('select p.*, s.sname as state_name,
l.lname as lga_name from pat_reg p INNER join lga l on p.lga_id = l.lga_id
INNER join states s on p.state_id = s.state_id');
require('fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',11);
foreach($header as $heading) {
foreach($heading as $column_heading)
$pdf->Cell(80,12,$column_heading,1);
}
foreach($result as $row) {
$pdf->SetFont('Arial','',11);
$pdf->Ln();
foreach($row as $column)
$pdf->Cell(80,12,$column,1);
}
$pdf->Output();
這是我的數據庫控制器類
class DBController {
private $host = "localhost";
private $user = "root";
private $password = "";
private $database = "patients_db";
function runQuery($sql) {
$conn = new mysqli($this->host,$this->user,$this->password,$this->database);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$resultset[] = $row;
}
}
$conn->close();
if(!empty($resultset))
return $resultset;
}
}
任何幫助都感激不盡。
我對FPDF
不熟悉,所以我只是遵循您為此提供的代碼。
<?php
$db_handle = new DBController();
$result = $db_handle->runQuery('select p.*, s.sname as state_name,
l.lname as lga_name from pat_reg p INNER join lga l on p.lga_id =
l.lga_id INNER join states s on p.state_id = s.state_id');
// Header query removed
require('fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',11);
// Add some logic to ensure there is at least one row
if(count($result) > 0){
// Loop through the keys of the associative array (use the first row)
foreach($result[0] as $header => $value) {
$pdf->Cell(80,12,$header,1);
}
// Add the line ending here too I assume?
$pdf->Ln();
// Loop through rows
foreach ($result as $row) {
$pdf->SetFont('Arial','',11);
$pdf->Ln();
foreach($row as $column)
$pdf->Cell(80,12,$column,1);
}
}
// Output PDF
$pdf->Output();
} else {
// Error handling
}
想法是,我們從數據庫對象獲得的結果是關聯數組,每個數組都遵循key => value
模式。 因此,假設結果中至少有1個條目,我們可以查看第一個條目,循環遍歷鍵並將它們打印為標題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.