Example with MySQL

Add-On Example with MySQL

Informations

Author:Carlos Vásquez Sáez
License: FPDF

Description

This is an example script showing how to output a product table from a Mysql database.
Note: the table must fit in a single page.

For a more advanced script, see Table with MySQL.

Source

<?php
//SHOW A DATABASE ON A PDF FILE
//CREATED BY: Carlos Vasquez S.
//E-MAIL: cvasquez@cvs.cl
//CVS TECNOLOGIA E INNOVACION
//SANTIAGO, CHILE

require('fpdf.php');

//Connect to your database
include("conectmysql.php");

//Select the Products you want to show in your PDF file
$result=mysql_query("select Code, Name, Price from Products ORDER BY Code", $link);
$number_of_products = mysql_numrows($result);

//Initialize the 3 columns and the total
$column_code = "";
$column_name = "";
$column_price = "";
$total = 0;

//For each row, add the field to the corresponding column
while($row = mysql_fetch_array($result))
{
    $code = $row["Code"];
    $name = substr($row["Name"], 0, 20);
    $real_price = $row["Price"];
    $price_to_show = number_format($row["Price"], ', ', '.', '.');

    $column_code = $column_code.$code."\n";
    $column_name = $column_name.$name."\n";
    $column_price = $column_price.$price_to_show."\n";

    //Sum all the Prices (TOTAL)
    $total = $total+$real_price;
}
mysql_close();

//Convert the Total Price to a number with (.) for thousands, and (, ) for decimals.
$total = number_format($total, ', ', '.', '.');

//Create a new PDF file
$pdf=new FPDF();
$pdf->AddPage();

//Fields Name position
$Y_Fields_Name_position = 20;
//Table position, under Fields Name
$Y_Table_Position = 26;

//First create each Field Name
//Gray color filling each Field Name box
$pdf->SetFillColor(232, 232, 232);
//Bold Font for Field Name
$pdf->SetFont('Arial', 'B', 12);
$pdf->SetY($Y_Fields_Name_position);
$pdf->SetX(45);
$pdf->Cell(20, 6, 'CODE', 1, 0, 'L', 1);
$pdf->SetX(65);
$pdf->Cell(100, 6, 'NAME', 1, 0, 'L', 1);
$pdf->SetX(135);
$pdf->Cell(30, 6, 'PRICE', 1, 0, 'R', 1);
$pdf->Ln();

//Now show the 3 columns
$pdf->SetFont('Arial', '', 12);
$pdf->SetY($Y_Table_Position);
$pdf->SetX(45);
$pdf->MultiCell(20, 6, $column_code, 1);
$pdf->SetY($Y_Table_Position);
$pdf->SetX(65);
$pdf->MultiCell(100, 6, $column_name, 1);
$pdf->SetY($Y_Table_Position);
$pdf->SetX(135);
$pdf->MultiCell(30, 6, $columna_price, 1, 'R');
$pdf->SetX(135);
$pdf->MultiCell(30, 6, '$ '.$total, 1, 'R');

//Create lines (boxes) for each ROW (Product)
//If you don't use the following code, you don't create the lines separating each row
$i = 0;
$pdf->SetY($Y_Table_Position);
while ($i < $number_of_products)
{
    $pdf->SetX(45);
    $pdf->MultiCell(120, 6, '', 1);
    $i = $i +1;
}

$pdf->Output();
?>

Download

ZIP | TGZ