Page 1 sur 1

Tableau FPDF

Posté : 07 juin 2013, 15:41
par NUAGE
Bonjour,

Je veux faire une sorte de grand tableau affichant mes formations en pdf. Je veux faire une colonne par mois et dans chacune des cases de la colonne avoir le nom de la formation.
J'ai deux tables, formation, dateformation
Le titre de la colonne serait donc le mois extrait de la date.

J'ai un premier code qui à l'air de marcher pour une colonne.
Mais je sèche pour les autres.
Quand je fais print_r($header) ça ne m'affiche que le premier mois et non la liste de tout les mois concernés.
$pdf=new PDF();
    $req= "SELECT d.date FROM dateformation d, Formation f WHERE f.id_form=d.id_form";
  $query3=mysql_query($req);
  setlocale(LC_TIME, "fr_FR.utf-8", "fra");
    $dates='';
      while($ligne = mysql_fetch_array($query3)){
    $dates.= strftime('%d %B %Y', strtotime($ligne['dates']));
     list($jour, $mois, $annee) = explode(" ",$dates);
        $header=array($mois);
        }

        $pdf->AddPage('L');

        $query="select distinct d.date, p.nom_form FROM dateformation d, Formation f WHERE f.id_form=d.id_form group by nom_form ,'".$mois."' ";
    $resultat=mysql_query($query);
    $pdf->SetXY(30,55);

    for($i=0;$i<sizeof($header);$i++)
    $pdf->cell(5,1,$header[$i],0,1,'C',0);

    $pdf->SetFont('Arial','',10);
    $pdf->SetXY(25,$pdf->GetY()+5);

    while($row=mysql_fetch_array($resultat))
    {

    $txt="".$row['nom_form']."
    ".$jour;
    $pdf->MultiCell(45,5,utf8_decode($txt),0,'L',0,0); 
   
 
    $pdf->SetXY(25,$pdf->GetY()+5);
   
    }
    $pdf->output();
Merci de votre aide.
Cordialement

Re: Tableau FPDF

Posté : 07 juin 2013, 16:28
par Pitet
Salut,

La variable $header ne t'affiche qu'un mois car elle est affectée dans la boucle while, donc à chaque itération tu recrée un nouveau tableau.

Pour avoir tous les mois dans ton tableau il faut procéder de la même manière que pour ta variable $dates, c'est à dire :
- initialisé ton tableau avant la boucle while
- puis ajouter les éléments dans ton tableau à chaque itération de la boucle

Tu peux faire comme ceci par exemple :
$dates = '';
[b]$header = array(); // on initialise notre variable en créant un tableau vide[/b]
while($ligne = mysql_fetch_array($query3)){
    $dates.= strftime('%d %B %Y', strtotime($ligne['dates']));
    list($jour, $mois, $annee) = explode(" ",$dates);
[b]    $header[] = $mois; // on ajoute un élément au tableau[/b]
}
Bon développement

Re: Tableau FPDF

Posté : 07 juin 2013, 16:31
par Pitet
Petit fail sur le code posté, et pas possible d'éditer mon message (ça m'apprendra à ne pas me connecter).

Correction :
$dates = '';
$header = array(); // on initialise notre variable en créant un tableau vide
while($ligne = mysql_fetch_array($query3)){
    $dates.= strftime('%d %B %Y', strtotime($ligne['dates']));
    list($jour, $mois, $annee) = explode(" ",$dates);
    $header[] = $mois; // on ajoute un élément au tableau
}

Re: Tableau FPDF

Posté : 07 juin 2013, 16:36
par NUAGE
Re,

Merci d'avoir répondu Pitet.
J'ai les changements, pourtant quand j'affiche les résultats j'ai ceci :
Array ( [0] => juin [1] => juin [2] => juin [3] => juin [4] => juin [5] => juin [6] => juin )
En sachant que dans ma base j'ai 1 date au mois de juillet et les 6 autres en juin.

Re: Tableau FPDF

Posté : 10 juin 2013, 10:47
par NUAGE
Bonjour,

Est-ce que quelqu'un peut m'aider parce que là je ne vois pas du tout ?

Merci d'avance.