modemo2018

Générer un PDF avec FPDF contenant PHP mysql

Jun 25th, 2020
1,056
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 5.12 KB | None | 0 0
  1. Bonjour à tous
  2. Voici un lien où on clique pour envoyer les données que le fichier tableau prendra en compte pour afficher le fichier PDF contenant la liste des élèves
  3.  
  4. <code basic>
  5. <?php  
  6. $serie = $_GET['serie']; $class = $_GET['class']; $cycle = $_GET['cycle']; echo "<a href=\"tableau.php? serie=$serie &amp; class=$class &amp;cycle=$cycle\"";?><?php echo ' class="place"><p>Télécharger la liste des élèves</a>'; ?>      
  7. </code>
  8.    
  9. Voici le contenu du fichier  Tableau.php  que j'ai conçu dans le but d'afficher la liste des élève contenu dans une base de donnée sur un PDF
  10.  
  11. <code basic>
  12. <?php
  13. session_start();
  14. require("connexion.php");
  15. error_reporting ( E_ALL );
  16. ini_set ( 'display_errors', TRUE );
  17. ini_set ( 'display_startup_errors', TRUE );
  18.  
  19. $class = !empty ( $_GET['class'] ) ? $_GET['class'] : NULL;
  20. $cycle = !empty ( $_GET['cycle'] ) ? $_GET['cycle'] : NULL;
  21. $iduser = !empty ( $_SESSION['id'] ) ? $_SESSION['id'] : NULL;       
  22. $serie = !empty ( $_GET['serie'] ) ? $_GET['serie'] : NULL;
  23.  
  24. $gen ='LYCÉE GÉNÉRAL';
  25. $tech ='LYCÉE TECHNIQUE';
  26. $prim ='PRIMAIRE'; 
  27. $college ='Collège';                
  28. $coll = trim($college);
  29.                  
  30. $trimed = trim($gen);      
  31. $trime = trim($tech);
  32. $primaire = trim($prim);   
  33. $trim = trim($cycle);  
  34.  
  35. try
  36.     {      
  37.  $req1 = $bdd->prepare('SELECT * FROM enseignant WHERE class = ? AND serie = ? AND id = ?');
  38.    
  39.     $req1->execute(array($class,$serie, $iduser));
  40.              
  41.     //Somme des élèves de la classe  
  42.      }
  43.     catch(Exception $e)
  44.     {
  45.         die('Erreur : '.$e->getMessage());
  46.     }
  47. $don =  $req1->fetch();
  48.  
  49. require('fpdf.php');
  50. try
  51.     {      
  52.  $req = $bdd->prepare('SELECT * FROM compte WHERE id = ?');
  53.    
  54.     $req->execute(array($iduser));
  55.              
  56.  }
  57.     catch(Exception $e)
  58.     {
  59.         die('Erreur : '.$e->getMessage());
  60.     }
  61. $donnees =  $req->fetch();
  62.  
  63.  
  64. class PDF extends FPDF {
  65.     function Header() {
  66.    
  67.  
  68.         $this->SetFont('Helvetica','B',11);
  69.  
  70.         $this->SetX(70);
  71.         $this->Cell(60,8,''.$donnees['nom'].'',0,1,'C',1); // Voilà là où l'erreur est signalé
  72.         // Saut de ligne utf8_decode(mm
  73.         $this->Ln(10);     
  74.     }
  75.  
  76.     function Footer() {
  77.         // Positionnement à 1,5 cm du bas
  78.         $this->SetY(-15);
  79.         // Police Arial italique 8
  80.         $this->SetFont('Helvetica','I',9);
  81.         // Numéro de page, centré (C)
  82.         $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
  83.     }
  84. }
  85.  
  86. $pdf = new PDF('P','mm','A4');
  87.  
  88.  
  89. $pdf->AddPage();
  90. // Polices par défaut : Helvetica taille 9
  91. $pdf->SetFont('Helvetica','',9);
  92. // Couleur par défaut : noir
  93. $pdf->SetTextColor(0);
  94. // Compteur de pages {nb}
  95. $pdf->AliasNbPages();
  96.  
  97. $pdf->SetFont('Helvetica','B',11);
  98. // couleur de fond de la cellule : gris clair
  99. $pdf->setFillColor(230,230,230);
  100. $pdf->Cell(75,6,' Classe :'.$class.'  '.$serie.'',0,1,'L',1);
  101.  
  102. if($trim == $primaire) {    
  103.  
  104. $pdf->Cell(75,6,'<strong>Enseignant :</strong>'.$don['nom'].' '.$don['prenom'].'',0,1,'L',1);
  105. }
  106. $pdf->Ln(10); // saut de ligne 10mm
  107.  
  108. function entete_table($position_entete) {
  109.     global $pdf;
  110.     $pdf->SetDrawColor(183);
  111.     $pdf->SetFillColor(221);
  112.     $pdf->SetTextColor(0); // Couleur du texte noir
  113.     $pdf->SetY($position_entete);
  114.     // position de colonne 1 (10mm à gauche)  
  115.     $pdf->SetX(10);
  116.     $pdf->Cell(60,8,'#',1,0,'C',1); // 60 >largeur colonne, 8 >hauteur colonne
  117.     // position de la colonne 2 (70 = 10+60)
  118.     $pdf->SetX(70);
  119.     $pdf->Cell(60,8,'Nom',1,0,'C',1);
  120.     $pdf->SetX(130);
  121.     $pdf->Cell(30,8,'Prenom',1,0,'C',1);
  122.     $pdf->Ln(); // Retour à la ligne
  123. }
  124.  
  125. $position_entete = 70;
  126. $pdf->SetFont('Helvetica','',9);
  127. $pdf->SetTextColor(0);
  128. // on affiche les en-têtes du tableau
  129. entete_table($position_entete);
  130.      
  131. try
  132.     {      
  133.  $req = $bdd->prepare('SELECT * FROM eleve WHERE class = ? AND serie = ? AND iduser = ? ORDER BY nom');
  134.    
  135.     $req->execute(array($class, $serie, $iduser));
  136.                
  137.      }
  138.     catch(Exception $e)
  139.     {
  140.         die('Erreur : '.$e->getMessage());
  141.     }
  142. $j=1;
  143.  
  144. while($donn =  $req->fetch()){
  145. $pdf->SetY($position_detail);
  146.     $pdf->SetX(10);
  147.     $pdf->MultiCell(60,8,utf8_decode(' '.$j.''),1,'C');
  148.     // position abcisse de la colonne 2 (70 = 10 + 60) 
  149.     $pdf->SetY($position_detail);
  150.     $pdf->SetX(70);
  151.     $pdf->MultiCell(60,8,utf8_decode(' '.$don['nom'].''),1,'C');
  152.     // position abcisse de la colonne 3 (130 = 70+ 60)
  153.     $pdf->SetY($position_detail);
  154.     $pdf->SetX(130);
  155.     $pdf->MultiCell(30,8,' '.$don['prenom'].'',1,'C');
  156.    
  157. $j++;      
  158. }
  159. $pdf->Output();
  160. ?>
  161. </code>
  162.  
  163.  
  164.  
  165. Quand je clique sur le lien, il m'affiche ces erreurs:
  166.  
  167. "" Notice: Undefined variable: donnees in /Applications/MAMP/htdocs/kela/tableau.php on line 67 ""
  168. Je comprend pas pourquoi il me signale cette erreur pourtant tout à l'air bon
  169.  
  170.  
  171. Fatal error: Uncaught Exception: FPDF error: Some data has already been output, can't send PDF file in /Applications/MAMP/htdocs/kela/fpdf.php:271 Stack trace: #0 /Applications/MAMP/htdocs/kela/fpdf.php(1063): FPDF->Error('Some data has a...') #1 /Applications/MAMP/htdocs/kela/fpdf.php(999): FPDF->_checkoutput() #2 /Applications/MAMP/htdocs/kela/tableau.php(164): FPDF->Output() #3 {main} thrown in /Applications/MAMP/htdocs/kela/fpdf.php on line 271
  172.  
  173. et je comprend pas pourquoi il me signale une erreur au niveau fpdf.php
  174.  
  175. Quelqu'un peut-il m'aider ?
Advertisement
Add Comment
Please, Sign In to add comment