2012-04-25 3 views
0

Le but que j'essaie de réaliser est d'exécuter une requête mysql, de placer la sortie dans un foreach, puis de vider tous les résultats dans un document pdf en utilisant la géniale bibliothèque FPDF. Cependant, seul le dernier enregistrement de résultat le fait dans la bibliothèque pdf. est ici question mysql:PHP FPDF ForEach loop

$sql1 = "SELECT 
mytable.AddressLine1, 
mytable.OrgID 
FROM 
mytable"; 
$results = $db->query($sql1); 

Voici mon PHP:

foreach ($results as $all_data) { 
$border = 0; 
$cardWidth = 1; 
$cardHeight = 1; 
require_once('fpdf/fpdf.php'); 
require_once('fpdf/fpdi.php'); 
$pdf = new FPDI('P','in','Letter'); 
$pdf->setSourceFile(realpath(ROOT_DIR . 'view' . URL_PATH . 'snTemplate.pdf')); 
$pdf->AddPage(); 
$template = $pdf->importPage(1); 
$pdf->useTemplate($template); 
$pageNumber = 1; 
$pdf->SetFont('Arial', '', 6); 
$pdf->SetXY(0, 9.8); 
$pdf->MultiCell(8.5, .2, 'Page ' . $pageNumber, $border,'C'); 
$pdf->SetXY(0, 9.9); 
$pdf->MultiCell(8.5, .2,' Report Form ', $border, 'C'); 
$pdf->SetXY(0, 10); 
$pdf->MultiCell(8.5, .2, 
$all_data['AddressLine1'] . ' - ' . $all_data['OrgID'], $border, 'C'); 
$pdf->Output('Name' . 'sanctionReport' . '.pdf','I'); 
} 

Encore une fois il y a quatre résultats dans le tableau, mais seule la dernière recordset est sortie dans le PDF, je voudrais que tous les résultats apparaître sur leur page individuelle, tous avec dans le même rapport, ne veulent vraiment pas avoir plusieurs boîtes de téléchargement sur l'écran des utilisateurs ... ils ont tendance à avoir peur!

Répondre

1

dans chacun pour l'itération vous recréer le pdf. Déplacez le $ pdf = nouveau FPDI (..) avant la boucle for. Et déplacez le pdf-> Sortie après la boucle for (Output génère le pdf à partir des données que vous lui donnez).

+0

@ blejzz - c'est fait. merci de m'indiquer dans la bonne direction! –