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
An Error Occurred:Internal Server Error

Oops! An Error Occurred

The server returned a "500Internal Server Error".

Something is broken. Please let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused.