FPDF et PHP

Résolu
cs_sebalex Messages postés 150 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 6 janvier 2017 - 10 juil. 2009 à 14:18
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 - 10 juil. 2009 à 15:15
Bonjour à tous,

Je n'arrive pas à afficher les variables recherchées dans ma base lorsque je crée un pdf. Est-ce que quelqu'un pourrait m'aider car j'ai vraiment tout essayer mais sans résultats.

Voici mon code (en espérant que ce soit lisible)

<?php
require('fpdf.php');

require_once('../../Connections/connexion.php');
mysql_select_db($database_connexion, $connexion);
$query_licences "SELECT * FROM licences WHERE session '$session'";
$licences = mysql_query($query_licences, $connexion) or die(mysql_error());
$row_licences = mysql_fetch_assoc($licences);
$user = $row_licences['user'];
$base = $row_licences['base'].'.php';

mysql_select_db($database_connexion, $connexion);
$query_societe "SELECT * FROM clients WHERE id_client '$row_licences[id_client]'";
$societe = mysql_query($query_societe, $connexion) or die(mysql_error());
$row_societe = mysql_fetch_assoc($societe);
$logo = $row_societe['logo'];
$titre = $row_societe['titre'];
$adresse = $row_societe['adresse'];
class PDF extends FPDF
{
//En-tête
function Header()
{
//Logo
$this->Image('../logos/'.$logo.'.jpg',95,8,20);
//Police Arial gras 15
$this->SetFont('Arial','B',9);
//Titre
$this->Cell(0,10,'',0,2,'C');
$this->SetTextColor(100);
$this->Cell(0,12,''.$titre.'',0,2,'C');
$this->SetFont('Arial','',6);
$this->SetTextColor(0);
$this->Cell(0,2.5,'CONSEILS ET GESTION EN ASSURANCES',0,2,'C');
$this->Cell(0,2.5,'D\'ENTREPRISES ET DE PARTICULIERS',0,2,'C');
//Saut de ligne
$this->Ln(20);
//Décalage à droite
$this->Cell(115);
}

//Pied de page
function Footer()
{
//Positionnement du bas
$this->SetLeftMargin(10); //Marge gauche
$this->SetY(-5);
//Police Arial italique 8
$this->SetFont('Arial','',8);
$this->SetTextColor(100);
//Numéro de page
$this->Cell(0,5,''.$adresse.'',0,0,'C');
}
}


Merci de votre précieuse aide et bonne journée à tous



David

3 réponses

nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
10 juil. 2009 à 14:32
Bonjour,

Dans ton fragment de code, les variables à utiliser sont extraites depuis le contexte global, mais tu les utilises dans une méthode de classe.
Dans ce cas, il existe 2 solutions: soit avoir une méthode pour initialiser ces varaibles en tant que variables d'instance de ta classe (méthode recommandée), soit d'accéder à te svariables dans le contexte global, via par exemple, $this->Cell(0,12,'' .$GLOBALS['titre'] . '',0,2,'C') ;
3
cs_sebalex Messages postés 150 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 6 janvier 2017
10 juil. 2009 à 14:36
En tout cas, merci pour ta réponse "ultra" rapide. Très sincèrement, je ne maîtrise pas suffisamment bien le PHP pour comprendre tes solutions qui me semblent être parfaites.

Oserai-je te demander de m'écrire un exemple sur la base de mon code ???


Merci encore
0
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
10 juil. 2009 à 15:15
Par exemple:

class PDF extends FPDF

{

    protected $logo = null ;

    protected $titre = null ;

    protected $adresse = null ;
    public function __construct( $logo '', $titre '', $adresse = '' )

    {

         $this->logo = $logo ;

         $this->titre = $titre ;

         $this->adresse = $adresse ;

         parent::__construct() ;

    }

    // en-tête

    function Header()

    {

        //Logo

        $this->Image('../logos/' . $this->logo . '.jpg',95,8,20);

        //Police Arial gras 15

        $this->SetFont('Arial','B',9);

        //Titre

        $this->Cell(0,10,'',0,2,'C');

        $this->SetTextColor(100);

        $this->Cell(0,12,''.$this->titre.'',0,2,'C');

        $this->SetFont('Arial','',6);

        $this->SetTextColor(0);

        $this->Cell(0,2.5,'CONSEILS ET GESTION EN ASSURANCES',0,2,'C');

        $this->Cell(0,2.5,'D\'ENTREPRISES ET DE PARTICULIERS',0,2,'C');

        //Saut de ligne

        $this->Ln(20);

        //Décalage à droite

        $this->Cell(115);

    }

    //Pied de page

    function Footer()

    {

        //Positionnement du bas

        $this->SetLeftMargin(10); //Marge gauche

        $this->SetY(-5);

        //Police Arial italique 8

        $this->SetFont('Arial','',8);

        $this->SetTextColor(100);

        //Numéro de page

        $this->Cell(0,5,''.$this->adresse.'',0,0,'C');

    }

}  

Ensuite, dans ton corps de script :

$row_societe = mysql_fetch_assoc($societe);

$logo = $row_societe['logo'];

$titre = $row_societe['titre'];

$adresse = $row_societe['adresse'];

$myreport = new PDF( $logo, $titre, $adresse ) ;

et tu continues à remplir ton document...
Attention, dans l'exemple, j'ai utilisé la syntaxe pour PHP 5. Si tu es resté sur l'archaique PHP 4 (maintenant non supporté par le PHP Group depuis le 8 août 2008), tu devras modifier un peu.
0
Rejoignez-nous