8722 sujets

Développement web côté serveur, CMS

Bonjour à tous !

Je découvre ce site fort sympathique.
Je me permets de faire une requête concernant FPDF , découvert récemment (permettant d'imprimer des tableaux en php).
Je suis allé sur le site officiel (j'ai même posté un msg mais apparemment il n'est jamais apparu Smiley cligne )) , je me demande si le site est toujours en vie…. Smiley smile ) .
Bref, mon tableau s'imprime bien sur plusieurs pages (titre:OK PageNo:ok, saut page:ok)) mais l'entête du tableau figure uniquement sur la 1ère page.
Je galère pas mal avec ça depuis plusieurs jours .
merci bcp d'avance.

<?php
// Connexion à la BDD

//$bddname = 'nom_de_la_base';
//$hostname = 'localhost';
//$username = 'utilisateur';
//$password = 'mot_de_passe';
//$db = mysqli_connect ($hostname, $username, $password, $bddname);

try
{
      // On se connecte ? MySQL
      $bdd = new PDO('mysql:host=localhost;dbname=base1;charset=utf8','root','',array
      (PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 
}

catch(Exception $e)
{
      // En cas d'erreur on affiche un msg et on arr?te tout
             die('Erreur : '.$e->getmessage());

}




// Appel de la librairie FPDF
require("fpdf/fpdf.php");


// Création de la class PDF

class PDF extends FPDF {
    // Header
    function Header() {
        $this->SetFont('Arial','B','20');
        $this->SetXY(40,20);
        $this->Cell(120,10,'LISTE des DVD',1,0,'C');
        // Saut de ligne
        $this->Ln(10);
    }
    // Footer
    function Footer() {
        // Positionnement à 1 cm du bas
        $this->SetY(-10);
        $this->SetFont('Arial','I','8');
        // Numero de page
        $this->Cell(0,5,'Page '.$this->PageNo().'/{nb}',0,0,'C');
    }
}


// Activation de la classe
$pdf = new PDF('P','mm','A4');
$pdf->AddPage();
$pdf->SetFont('Helvetica','',11);
$pdf->SetTextColor(0);

 

$position_entete = 45;

 
 function entete_table($position_entete){
    global $pdf;
    $pdf->SetDrawColor(183); // Couleur des contours
    $pdf->SetFillColor(221); // Couleur de remplissage
    $pdf->SetTextColor(0); // Couleur du texte
    $pdf->SetY($position_entete);
    $pdf->SetX(30);
    $pdf->Cell(100,10,'Titre du DVD',1,0,'L',1);
    $pdf->SetX(130); 
    $pdf->Cell(30,10,'Genre',1,0,'C',1);
    $pdf->SetX(160);
    $pdf->Cell(30,10,'Annee',1,0,'C',1);
    $pdf->Ln(); // Retour à la ligne
}
entete_table($position_entete);

// Liste des détails
$position_detail = 70; // 

$reponse = $bdd->query('SELECT * FROM DVD ORDER BY Titre');


 while ($row2 = $reponse->fetch()) {
    $pdf->SetY($position_detail);
    $pdf->SetX(30);
    $pdf->MultiCell(100,10,utf8_decode($row2['Titre']),1,'L');
    $pdf->SetY($position_detail);
    $pdf->SetX(130);
    $pdf->MultiCell(30,10,$row2['Genre'],1,'C');
    $pdf->SetY($position_detail);
    $pdf->SetX(160);
    $pdf->MultiCell(30,10,$row2['Annee'],1,'C');
    $position_detail += 10;
}

// Nom du fichier
//$nom = 'ListeDVD'.pdf';

// Création du PDF
$pdf->Output();

?>
Salut,

Dans la partie script du site, tu as une liste d'exemples, dont une construction de tableau à partir d'une requête SQL : http://www.fpdf.org/fr/script/script14.php

A priori, tu n'as pas d'autres choix que d'utiliser la fonction Header qui affichera l'entête du tableau en début de page si nécessaire. A toi de déterminer quand c'est nécessaire.