Генерация 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.
