Bonjour à tous,

j'ai un problème pour réaliser un PDF avec (FPDF)

je dois afficher une galerie d'image en fonction de ma BDD

j'ai un problème en réalisant ma boucle


le résultat devrait afficher ça



ça marche impeccablement si j'ai que 12 images à afficher dans la galerie, mais je dois effectuer une boucle pour n'importe quel nombre d'image.

le bug s'effectue à partir de la 2e page, il y a des décalages, des images qui ne s'affichent pas etc..

l'image numéro 18 ne s'affiche pas et on voit une petite trace au dessus de la 19...



pareil pour la page 3, l'image numéro 35 ne s'affiche il se trouve au dessus de la 36..



voici mon code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
require('pdf/fpdf.php');
 
class annonceurPDF extends FPDF
{   
 
function view_galerie($requetegal, $nbimg)
{
 
ob_clean();
$pdf=new FPDF('P','mm','A4');
$pdf->AddPage();
$pdf->SetFont('Arial','B',11);
 
 
$compteur=0;
$c=0;
$l=1;
 
 
foreach($requetegal as $ligne)
{
$c++;
$compteur++;
 
if($compteur %13 == 0)
{
$pdf->AddPage();
$pdf->SetFont('Arial','B',11);
$compteur=0;
$c=0;
$l=1;
}
 
 
 
 
$imglink = explode(';', $ligne->pics);
 
	switch($l)
	{
	case '1' :
	$x=10;
	break;
	case '2' :
	$x=80;
	break;
	case '3' :
	$x=150;
	break;
	case '4' :
	$x=220;
	break;
	default : break;
	}
 
	switch($c)
	{
	case '1' : $y=10;
	$pdf->Image('./components/com_datsogallery/img_cx2543/'.$imglink[0],$y,$x,50,50);
	$pdf->rect($y, $x, 50, 50, "");
	break;
	case '2' : 
	$pdf->SetX(86); $y=80;
	$pdf->Image('./components/com_datsogallery/img_cx2543/'.$imglink[0],$y,$x,50,50);
	$pdf->rect($y, $x, 50, 50, "");
	break;
	case '3' : 
	$pdf->SetX(156); $y=150;
	$pdf->Image('./components/com_datsogallery/img_cx2543/'.$imglink[0],$y,$x,50,50);
	$pdf->rect($y, $x, 50, 50, "");
	break;
	case '4' : $y=10; $x=$x+70;
	$pdf->Image('./components/com_datsogallery/img_cx2543/'.$imglink[0],$y,$x,50,50);
	$pdf->rect($y, $x, 50, 50, "");
	$c=1; 
	$l++; 
	break;
	default : break;
	}
 
	if($compteur==1)
	{
	$pdf->Ln(55);
	}
 
	if(($c==1 && $l!=1))
	{
	$pdf->Ln(70);
	}
 
	if($c==1) $pdf->SetX(16);
 
$pdf->SetFont('Arial','B',11);
$pdf->Write(0,"Image ".$ligne->id);
$pdf->Write(0,"  ");
$pdf->SetFont('Arial','',10);
$pdf->Write(0,"(by ".$ligne->createur.")");
 
if($l==4 && $c==4)
{
$l=1;
}
 
 
 
}
 
 
$pdf->Output();
 
 
 
 
}