Bonjour,
Je cherche depuis longtemps comment corriger mon problème que voici

je fais une requête SQL sur ma base de données pour sélectionner les données afin de les afficher dans un tableau à l'aide de l'outil FPDF. Jusqu'à là, tout va bien.

Le problème c'est que les données sélectionnées sont mis dans une seule colonne et non dans chacun des colonnes correspondantes. J'ai déjà bien entendu rechercher des solutions sur Google mais cela ne résout pas mon problème.

Voici le code source :
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?php
session_start();
 
try
{
	$bdd = mysqli_connect('localhost', '<user>', '<password>', '<nom_base>');
}
catch(Exception $e)
{
	die('Erreur : '. mysqli_error());
}
$Type = $_SESSION['type'];
$req = 'SELECT * FROM '.$Type.'';
if($result = mysqli_query($bdd, $req))
{
	$champs = array();
	$iCpt = 0;
	while($infos = mysqli_fetch_field($result))
	{
		$NomChamp = $infos -> name;
		$iCpt++;
		$champs[$iCpt] = $NomChamp;
	}
}
 
require('fpdf.php');
class PDF extends FPDF
{
	function LoadData($file)
	{
		$lines = file($file);
		$data = array();
		foreach($lines as $line)
		{
			$data[] = explode(':', trim($line));
		}
		return $data;
	}
 
	function BasicTable($header)
	{
		$this -> SetX(82);  //espace entre la gauche de la page et l'entête du tableau
		$this->SetFillColor(192,192,192); //cellule de l'entête en gris
		$this->SetTextColor(0); //texte en noir
		$this->SetFont('Arial', '', 16); //Arial 16
		// En-tête
		foreach($header as $col)
			$this->Cell(40,7,$col,1,0,'C',true); //true pour afficher la couleur
		$this->Ln(); //saut de ligne
		$this->SetFont('Arial', '', 12); //remettre en Arial 12
	}
 
	function Table($data)
	{
		// Données
		foreach($data as $row) 
		{
			$this -> SetX(82);
			foreach($row as $col)
			{
				$this->Cell(40,7,$col,1,0,'C');
			}
			$this->Ln();
		}
	}
 
	function Header()
	{
		//variable de sessions
		$type = $_SESSION['type'];
		$titre = "Outils de type ".$type."";
		$user = $_SESSION['user'];
 
		$this -> Image('Pibomulti.jpg', 10, 6, 40); //image
		$this -> SetFont('Arial', '', 12); //Arial 12
		$this -> Cell(0, 10, 'Utilisateur : '.$user.'', 0,1, 'R'); //afficher tout à droite le nom d'utilisateu
		$this->SetFont('Arial', 'bu',22); //Arial gras souligné en taille 22
		// Décalage à droite
		// Titre
		$this->Cell(0,10,utf8_decode($titre),0,1,'C'); //titre au centre
		// Saut de ligne
		$this -> Ln();
	}
 
	function Footer()
	{
		$date = date("d.m.Y"); //format de la date
		$heure = date("H:i"); //format de l'heure
		$this -> SetY(-15); //coordonnées de l'axe Y
		$this -> SetFont('Arial', 'I', 12); //texte Arial 12 en italique
		$this -> Cell(0, 10, 'Page '.$this -> PageNo(),0,0,'C'); //texte centré au milieu
		$this -> SetY(-15);
		$this -> SetFont('Arial', 'I', 12);
		$this -> Cell(0, 10, $date.' / '.$heure,0,0,'L'); //affichage de la date à gauche
		$this -> SetY(-15);
		$this -> SetFont('Arial', 'I', 12);
		$this -> Cell(0, 10, 'Copyright PiboTools, Pibomulti',0,0,'R'); //affichage du texte à droite
	}
 
	function AddCol($field=-1,$width=-1,$caption='',$align='L')
	{
		//Ajoute une colonne au tableau
		if($field==-1)
			$field=count($this->aCols);
		$this->aCols[]=array('f'=>$field,'c'=>$caption,'w'=>$width,'a'=>$align);
	}
}
// Instanciation de la classe dérivée
$pdf = new PDF('L'); //nouveau document en paysage
$header = array();
for($i = 2; $i <= $iCpt; $i++)
{
	array_push($header, ''.$champs[$i].'');
}
//$data = $pdf -> LoadData('essai_tableau.txt');
$pdf->AddPage(); //nouvelle page
$pdf->BasicTable($header);
$pdf->SetFont('Arial','',12); //police style et taille
$data = array();
for($i = 2; $i <= 3; $i++)
{
	$req2 = "SELECT ".$champs[$i]." FROM ".$Type."";
	$result2 = mysqli_query($bdd, $req2);
	$flux = fopen('essai_tableau.txt', 'a+');
	while($donnees = mysqli_fetch_assoc($result2))
	{
		fwrite($flux, $donnees[''.$champs[$i].'']);
		fwrite($flux, "\r\n");
		$data = $pdf -> LoadData('essai_tableau.txt');
		$pdf -> Table($data);
		$pdf -> AddCol(''.$champs[$i + 1].'');
		ftruncate($flux, 0);
	}
 
}
$pdf->Output(); //faire sortir le document dans le navigateur
?>
Et voici le résultat :Nom : Capture1.PNG
Affichages : 1452
Taille : 11,0 Ko

Quelle est la correction à faire dans mon code s'il vous plaît?

PHP : 5.5.12
MySQL : 5.6.17

utilise Wamp version Apache : 2.4.9
Version FPDF : 1.7
Windows 7 et Firefox 36.0.1

Merci pour vos réponses.