簡體   English   中英

如何從php中的mysql數據庫正確輸出數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM