Чтение и последующие tutorial на сайте FPDF может быть хорошим началом.
Если предположить, что у вас есть таблица (позволяет называть его people
) и выборочные данные, как этот
CREATE TABLE People
(id int,
first_name varchar(5),
middle_name varchar(4),
last_name varchar(5),
age int,
email varchar(15));
INSERT INTO People
(id, first_name, middle_name, last_name, age, email)
VALUES
(1, 'Jhon', NULL, 'Doe', 27, '[email protected]'),
(2, 'Mark', 'J', 'Lee', 35, '[email protected]'),
(3, 'Helen', 'P', 'Smith', 30, '[email protected]');
Вот основной скрипт, который делать то, что вы хотите. Примечание: код не требует обработки ошибок для краткости.
<?php
require('fpdf.php');
class People {
public function all() {
try {
$db = new PDO('mysql:host=localhost;dbname=test;charset=UTF-8', 'user', 'password');
$query = $db->prepare("SELECT first_name, middle_name, last_name, age, email FROM people ");
$query->execute();
$people = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
//echo "Exeption: " .$e->getMessage();
$result = false;
}
$query = null;
$db = null;
return $people;
}
}
class PeoplePDF extends FPDF {
// Create basic table
public function CreateTable($header, $data)
{
// Header
$this->SetFillColor(0);
$this->SetTextColor(255);
$this->SetFont('','B');
foreach ($header as $col) {
//Cell(float w [, float h [, string txt [, mixed border [, int ln [, string align [, boolean fill [, mixed link]]]]]]])
$this->Cell($col[1], 10, $col[0], 1, 0, 'L', true);
}
$this->Ln();
// Data
$this->SetFillColor(255);
$this->SetTextColor(0);
$this->SetFont('');
foreach ($data as $row)
{
$i = 0;
foreach ($row as $field) {
$this->Cell($header[$i][1], 6, $field, 1, 0, 'L', true);
$i++;
}
$this->Ln();
}
}
}
// Column headings
$header = array(
array('First Name', 30),
array('Middle Name', 30),
array('Last Name', 30),
array('Age', 12),
array('Email', 47)
);
// Get data
$people = new People();
$data = $people->all();
$pdf = new PeoplePDF();
$pdf->SetFont('Arial', '', 12);
$pdf->AddPage();
$pdf->CreateTable($header,$data);
$pdf->Output();
Убедитесь, что изменить строку подключения
$db = new PDO('mysql:host=localhost;dbname=test;charset=UTF-8', 'user', 'password');
^^^^^^^^^ ^^^^ ^^^^ ^^^^^^^^
tnx mate, последнее, как добавить дополнительную таблицу на той же странице fpdf прямо под текущей таблицей People? например, в адресной таблице. – reggel
@reggel Добро пожаловать. Вы делаете это точно так же. Следуя моему примеру, реализуем класс «Адрес» с методом извлечения данных, модифицируем класс «PeoplePDF» для размещения нового метода (например, CreateAddressTable) для генерации таблицы адресов, определите массив для хранения информации заголовка для новой таблицы и, наконец, используйте эти новые методы. – peterm
tnx alot mate u дал мне много начального старта ... – reggel