Генерация PDF из данных MySQL с использованием FPDF

В этой статье мы считаем данные из таблицы MySQL с помощью PHP. Затем используем библиотеку FPDF для генерации PDF.

Смотреть демо

Генерация PDF из табличных данных MySQL с использованием библиотеки FPDF и PHP

Есть таблица БД MySQL. Мы считаем эти данные в массив и передадим их в функцию FPDF для генерации кода.

<?php
require_once("dbcontroller.php");
$db_handle = new DBController();
$result = $db_handle->runQuery("SELECT * FROM toy");
$header = $db_handle->runQuery("SELECT `COLUMN_NAME` 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='blog_samples' 
    AND `TABLE_NAME`='toy'");

require('fpdf/fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);		
foreach($header as $heading) {
	foreach($heading as $column_heading)
		$pdf->Cell(90,12,$column_heading,1);
}
foreach($result as $row) {
	$pdf->SetFont('Arial','',12);	
	$pdf->Ln();
	foreach($row as $column)
		$pdf->Cell(90,12,$column,1);
}
$pdf->Output();
?>

DBController.php

Этот файл содержит функции для установления соединения с базой данных и считывания информации из нее. Функция runQuery() считывает данные из таблицы и возвращает результаты, пригодные для создания отчета в формате PDF.

<?php
class DBController {
    private $host = "localhost";
    private $user = "root";
    private $password = "test";
    private $database = "blog_samples";
    
    private static $conn;
    
    function __construct() {
        $this->conn = $this->connectDB();
        if(!empty($this->conn)) {
            $this->selectDB();
        }
    }
    
    function connectDB() {
        $conn = mysqli_connect($this->host,$this->user,$this->password,$this->database);
        return $conn;
    }
    
    function selectDB() {
        mysqli_select_db($this->conn, $this->database);
    }
    
    function runQuery($query) {
        $result = mysqli_query($this->conn, $query);
        while($row=mysqli_fetch_assoc($result)) {
            $resultset[] = $row;
        }
        if(!empty($resultset))
            return $resultset;
    }
    
    function numRows($query) {
        $result  = mysqli_query($this->conn, $query);
        $rowcount = mysqli_num_rows($result);
        return $rowcount;
    }
}
?>

SQL-скрипт

Выполните приведенный ниже SQL-код для создания таблицы toy.

CREATE TABLE IF NOT EXISTS `toy` (
  `Name` varchar(55) NOT NULL,
  `Type` varchar(55) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `toy`
--

INSERT INTO `toy` (`Name`, `Type`) VALUES
('Ben 10 Watch', 'Battery Toys'),
('Angry Birds Gun', 'Mechanical Toys'),
('Remote Car', 'Remote Toys'),
('Uno Cards', 'Card Game'),
('Keyboard', 'Musical Toys'),
('Jigsaws', 'Board Game');

Генерация PDF-отчета из данных MySQL с использованием FPDF

На скриншоте, приведенном ниже, показан результат работы программы: выведенный список значений из базы данных с кнопкой «Generate PDF». При ее нажатии вызывается библиотека FPDF, которая используется для создания отчета в формате PDF.

Генерация PDF-отчета из данных MySQL с использованием FPDF

Смотреть демо

Скачать

Вадим Дворниковавтор-переводчик статьи «Generate PDF from MySQL Data using FPDF»