plusieurs enregistrements sur une page pdf
Posté : 15 juin 2010, 11:05
Bonjour
Je suis en train de créer un annuaire généré en pdf à partir d'une base de données.
Je constate qu'il y a un seul enregistrement par page alors que je voudrais récupérer plusieurs enregistrements qui appartiennent à une division et qui soient affichés sur une page ou plus selon le nombre d'enregistrements.
j'ai 955 enregistrements donc 955 pages. cela ne me convient pas .
Je vous remercie beaucoup de votre coopération.
voici le code php
Je suis en train de créer un annuaire généré en pdf à partir d'une base de données.
Je constate qu'il y a un seul enregistrement par page alors que je voudrais récupérer plusieurs enregistrements qui appartiennent à une division et qui soient affichés sur une page ou plus selon le nombre d'enregistrements.
j'ai 955 enregistrements donc 955 pages. cela ne me convient pas .
Je vous remercie beaucoup de votre coopération.
voici le code php
<?php
// va chercher le script pdf
require('fpdf16/fpdf.php');
//identifiants de connexion
$host = "*****";
$dblogin = "****";
$dbpass = "****";
$dbbase = "****";
$connect = mysql_connect($host,$dblogin,$dbpass);
$select = mysql_select_db($dbbase, $connect);
$sql = " SELECT annuagent.indnni, civ,ainomu,aipren,tel,mailpro,bureau,division,service,pole,fonction, ordre, ordreser, agstru.stru as ser, agstru.resp as responsable
FROM annuagent, agstru
WHERE ordre!='0'
AND
annuagent.indnni = agstru.indnni
ORDER BY ordre ASC, ordreser ASC, division ASC, agstru.stru DESC, agstru.resp DESC,ainomu ASC ";
$req = mysql_query($sql)or die (mysql_errno() . " : " .mysql_error());
$list = mysql_fetch_array($req);
// cree une classe PDF pour les header et footer
class PDF extends FPDF
{
function Header()
{
// bloc bleu et titre des champs sur toutes les pages
$this->Image('images/logo_annuaire.jpg',10,8,33);
$this->SetFillColor(0,81,158);
$this->SetTextColor(255,255,255);
$this->SetFont('Arial','B',10);
$this->SetXY(2,45);
$this->MultiCell(43,6,'Nom',0,'C',true);
$this->SetXY(45,45);
$this->MultiCell(30,6,'Prenom',0,'C',true);
$this->SetXY(75,45);
$this->MultiCell(40,6,'Service',0,'C',true);
$this->SetXY(115,45);
$this->MultiCell(28,6,'Telephone',0,'C',true);
$this->SetXY(143,45);
$this->MultiCell(70,6,'Courriel',0,'C',true);
$this->SetXY(200,45);
$this->MultiCell(20,6,'Bureau',0,'C',true);
$this->SetXY(220,45);
$this->MultiCell(75,6,'Fonction',0,'C',true);
// deux lignes au dessus du bloc bleu
$y = 34;
$this->SetY($y);
$this->SetLineWidth(0.1);
$this->SetDrawColor(0,81,158);
$this->line(2,36,90,36);
$this->line(190,36,295,36);
}
function Footer()
{
if($this->PageNo()>2){
$this->SetLineWidth(0.1);
$this->SetDrawColor(0,81,158);
$this->line(2,200,295,200);
$this->SetFont('Arial','',7);
$this->SetTextColor(0,0,0);
$this->Text(10,205,'Annuaire des personnels - Paris 2010');
$this->SetY(-12);
$this->Cell(0,10,$this->PageNo().'/{nb}',0,0,'C');
$now = date("j/m/Y");
$this->Text(270,205,$now);
}
}
}
// crée une instance pdf
$pdf = new PDF('L','mm','A4');
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->Image('images/annuaire_couv.png',0,0);
$pdf->AddPage();
$pdf->Image('images/organigrame_2010.jpg',0,0,297,210);
$pdf->AddPage();
// crée des rows
$prevCat = '';
$ainomu = '';
while($row = mysql_fetch_array($req))
{
if ( $row['division'] != $prevCat)
{
$pdf->SetFont('Arial','B',16);
$pdf->SetTextColor(0,81,158);
$pdf->Text(100,39,substr(stripslashes($row['division']),0,120));
}
//couleurs selon responsable
// chef de division : orange
if($row['responsable']==5){
$pdf->SetTextColor(234,103,12);
// adjoints chef: vert
}else if($row['responsable']==4){
$pdf->SetFont('Arial','B',8);
$pdf->SetTextColor(0,0,0);
// chef de département : bleu
}else if($row['responsable']==3){
$pdf->SetTextColor(51,102,255);
// $pdf->Text(10,$y,substr(stripslashes($row[9]),0,100));
// chef de service : noir
}else if($row['responsable']==2){
$pdf->SetTextColor(0,0,0);
// agent : noir
}else {
$pdf->SetTextColor(0,0,0);
}
$pdf->SetFont('Arial','BI',8);
$y = 55;
$y = $y + 4;
$pdf->Text(5,$y,substr(stripslashes($row['ainomu']),0,45));
$pdf->Text(45,$y,substr(stripslashes($row['aipren']),0,45));
$pdf->Text(75,$y,substr(stripslashes($row['service']),0,28));
$pdf->Text(125,$y,substr(stripslashes($row['tel']),0,15));
$pdf->Text(155,$y,strtolower($row['mailpro']),0,44);
$pdf->Text(210,$y,strtolower($row['bureau']),0,44);
$pdf->Text(230,$y,strtolower($row['fonction']),0,44);
// $pdf->Ln(10);
$prevCat = $row['division'];
$pdf->AddPage();
}
// femeture de mysql
mysql_close();
// génère un pdf
$pdf->Output();
?>