FPDF et PHP [Résolu]

Signaler
Messages postés
153
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
6 janvier 2017
-
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
-
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

Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
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') ;
Messages postés
153
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
6 janvier 2017

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
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
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.