IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[FPDF] Afficher les données à partir d'une base de données


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut [FPDF] Afficher les données à partir d'une base de données
    Bonjour,

    Je viens de passer plus de 10 heures à chercher une solution à mon prob et je ne trouve pas. J'aimerais générer un pdf à partir de données venant d'une base.

    La difficulté est d'afficher les données, elles proviennent de deux tables. Si quelqu'un pouvait me guider cela serait super sympa. Ou si quelqu'un à code à me montrer en exemple, je demande pas la solution mais juste à comprendre le fonctionnement.

    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
     
    <?php
    require('fpdf.php');
     
    class PDF extends FPDF
    {
    //Chargement des données depuis ma base
    function LoadData($base)
    {
    		mysql_select_db($database_horaire, $horaire);
    		mysql_set_charset( 'utf8' );
    				if(!empty($_POST['classe']))
    					{
    					//Affichage de la classe				
    					$claschoix='SELECT * FROM classe where id_cl ='.$_POST['classe'];
    					$reqclaschoix=mysql_query($claschoix)or die (mysql_error());
    					$req_claschoix=mysql_fetch_array($reqclaschoix);
    					//Affichage de la section
    					$secchoix='SELECT * FROM sections where id_section ='.$req_claschoix['id_sect'];
    					$reqsecchoix=mysql_query($secchoix)or die (mysql_error());
    					$req_secchoix=mysql_fetch_array($reqsecchoix);
    					}
    				//Affichage des cours de la classe
    				if(isset($_POST['classe']) and is_numeric($_POST['classe']))
    						{
     
    						$idclasse=$_POST['classe'];
    						$affcours='SELECT * FROM cours WHERE id_classe ='.$idclasse.' ORDER BY type ASC, nom_cours ASC';
    						$reqafcours=mysql_query($affcours) or die (mysql_error());
    						$cpt= 1 ;
    						while($row_affcours = mysql_fetch_array($reqafcours))
    							{
    							$classe='SELECT * FROM classe where id_cl ='.$row_affcours['id_classe'];
    							$reqclasse=mysql_query($classe)or die (mysql_error());
    							$req_classe=mysql_fetch_array($reqclasse);
    							$sect='SELECT * FROM sections where id_section ='.$req_classe['id_sect'];
    							$reqsect=mysql_query($sect)or die (mysql_error());
    							$req_section=mysql_fetch_array($reqsect);
    							//Travail sur la table horaires
    							$secaf=$req_section['id_section'];
    							$clasaf=$req_classe['id_cl'];
    							$coursaf=$row_affcours['id_c'];
    							$hor="SELECT * FROM horaires WHERE (id_clas='$clasaf' and id_cours='$coursaf')";
    							$reqhor=mysql_query($hor)or die (mysql_error());
    							$req_horaires=mysql_fetch_array($reqhor);			
     
    						/*Partie du code ou je bloque et évidemment ce la est faux mais je comprend pas comment parsé ma variable $req_horaires avec fpdf */
    							$pdf->write($row_affcours['nom_cours'], 10);
    $pdf->write($req_horaires['nbheures'], 10);
     
    							}
    						}			
     
    }
     
     
     
     
    function tableauhoraire($header,$base)
    {
        //Couleurs, épaisseur du trait et police grasse
        $this->SetFillColor(255,0,0);
        $this->SetTextColor(255);
        $this->SetDrawColor(128,0,0);
        $this->SetLineWidth(.3);
        $this->SetFont('','B');
        //En-tête
        $w=array(40,35);
        for($i=0;$i<count($header);$i++)
            $this->Cell($w[$i],7,$header[$i],1,0,'C',1);
        $this->Ln();
        //Restauration des couleurs et de la police
        $this->SetFillColor(224,235,255);
        $this->SetTextColor(0);
        $this->SetFont('');
        //Données
        $fill=false;
        foreach($base as $row)
        {
            $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
            $this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
            $this->Cell($w[2],6,number_format($row[2],0,',',' '),'LR',0,'R',$fill);
            $this->Cell($w[3],6,number_format($row[3],0,',',' '),'LR',0,'R',$fill);
            $this->Ln();
            $fill=!$fill;
        }
        $this->Cell(array_sum($w),0,'','T');
    }
    }
     
    $pdf=new PDF();
    //Titres des colonnes
    $header=array('Cours','Nb heure');
    $pdf->SetFont('Arial','',14);
    $pdf->AddPage();
    $pdf->tableauhoraire($header,$base);
    $pdf->Output();
    ?>
    Le tableau s'affiche mais pas le contenu de ma base, mon code php fonctionne aussi je l'ai testé avec un tableau html.

    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ou est défini $base ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    Bonjour merci de te pencher à nouveau sur mon prob, mais je sais pas ou définir $base, ni comment avec fpdf. J'ai cherché et testé plusieurs façons sans trouver.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut Révision du code
    Ne comprennent pas tout sur Fpdf, j'ai refondu mon code à sa plus simple expression. Mon pdf s'ouvre mais j'ai une page blanche.

    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
     
    <?php
    require('fpdf.php');
     
    class PDF extends FPDF
    {
     
    	function affichage()
    	{
    		mysql_select_db($database_horaire, $horaire);
    		mysql_set_charset( 'utf8' );
    				if(!empty($_POST['classe']))
    					{
    					//Affichage de la classe				
    					$claschoix='SELECT * FROM classe where id_cl ='.$_POST['classe'];
    					$reqclaschoix=mysql_query($claschoix)or die (mysql_error());
    					$req_claschoix=mysql_fetch_array($reqclaschoix);
    					//Affichage de la section
    					$secchoix='SELECT * FROM sections where id_section ='.$req_claschoix['id_sect'];
    					$reqsecchoix=mysql_query($secchoix)or die (mysql_error());
    					$req_secchoix=mysql_fetch_array($reqsecchoix);
    					}
    				//Affichage des cours de la classe
    				if(isset($_POST['classe']) and is_numeric($_POST['classe']))
    						{
     
    						$idclasse=$_POST['classe'];
    						$affcours='SELECT * FROM cours WHERE id_classe ='.$idclasse.' ORDER BY type ASC, nom_cours ASC';
    						$reqafcours=mysql_query($affcours) or die (mysql_error());
    						$cpt= 1 ;
    						while($row_affcours = mysql_fetch_array($reqafcours))
    							{
    							$classe='SELECT * FROM classe where id_cl ='.$row_affcours['id_classe'];
    							$reqclasse=mysql_query($classe)or die (mysql_error());
    							$req_classe=mysql_fetch_array($reqclasse);
    							$sect='SELECT * FROM sections where id_section ='.$req_classe['id_sect'];
    							$reqsect=mysql_query($sect)or die (mysql_error());
    							$req_section=mysql_fetch_array($reqsect);
    							//Travail sur la table horaires
    							$secaf=$req_section['id_section'];
    							$clasaf=$req_classe['id_cl'];
    							$coursaf=$row_affcours['id_c'];
    							$hor="SELECT * FROM horaires WHERE (id_clas='$clasaf' and id_cours='$coursaf')";
    							$reqhor=mysql_query($hor)or die (mysql_error());
    							$req_horaires=mysql_fetch_array($reqhor);			
     
    							//Partie du code ou je bloque
    							$cours = $row_affcours['nom_cours'];
    							$heures = $req_horaires['nbheures'];
     
    							$pdf->addcoursheures($cours."\n".$heures);
     
    							}
    						}
    	}			
    }
     
    $pdf=new PDF;
    $pdf->AddPage();
    $pdf->Output();
    ?>
    Si pouvoit comprendre la base, je pense pouvoir après arriver à construire progressivement le reste.

    Merci d'avance à toute les personnes qui se pencherons sur mon code.

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ce n'est pas une question FPDF.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function LoadData($base)
    {
    		mysql_select_db($database_horaire, $horaire);
    Dans ta fonction LoadData par exemple, tu fournis un paramètre $base qui ne sert pas après dans la fonction.
    A l'inverse ta fonction utilise $database_horaire et $horaire qui ne sont pas définis dans la fonction.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    merci de ton aide, je regarde cela de suite.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    J'ai corrigé des erreurs, mais j'ai toujours une page blanche

    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
     
    <?php
    require('fpdf.php');
    include('./config/config.php');
     
    class PDF extends FPDF
    {
     
    	function affichage($database_ircxl, $ircxl, $reqafcours)
    	{
    		mysql_select_db($database_ircxl, $ircxl);
    		mysql_set_charset( 'utf8' );
    				if(!empty($_POST['classe']))
    					{
    					//Affichage de la classe				
    					$claschoix='SELECT * FROM classe where id_cl ='.$_POST['classe'];
    					$reqclaschoix=mysql_query($claschoix)or die (mysql_error());
    					$req_claschoix=mysql_fetch_array($reqclaschoix);
    					//Affichage de la section
    					$secchoix='SELECT * FROM sections where id_section ='.$req_claschoix['id_sect'];
    					$reqsecchoix=mysql_query($secchoix)or die (mysql_error());
    					$req_secchoix=mysql_fetch_array($reqsecchoix);
    					}
    				//Affichage des cours de la classe
    				if(isset($_POST['classe']) and is_numeric($_POST['classe']))
    						{
     
    						$idclasse=$_POST['classe'];
    						$affcours='SELECT * FROM cours WHERE id_classe ='.$idclasse.' ORDER BY type ASC, nom_cours ASC';
    						$reqafcours=mysql_query($affcours) or die (mysql_error());
     
    						}
    	}			
    }
     
    $pdf=new PDF;
    $pdf->AddPage();
    while($row_affcours = mysql_fetch_array($reqafcours))
    	{
    	$classe='SELECT * FROM classe where id_cl ='.$row_affcours['id_classe'];
    	$reqclasse=mysql_query($classe)or die (mysql_error());
    	$req_classe=mysql_fetch_array($reqclasse);
    	$sect='SELECT * FROM sections where id_section ='.$req_classe['id_sect'];
    	$reqsect=mysql_query($sect)or die (mysql_error());
    	$req_section=mysql_fetch_array($reqsect);
    	//Travail sur la table horaires
    	$secaf=$req_section['id_section'];
    	$clasaf=$req_classe['id_cl'];
    	$coursaf=$row_affcours['id_c'];
    	$hor="SELECT * FROM horaires WHERE (id_clas='$clasaf' and id_cours='$coursaf')";
    	$reqhor=mysql_query($hor)or die (mysql_error());
    	$req_horaires=mysql_fetch_array($reqhor);			
     
    	//Partie du code ou je bloque
    	$cours = $row_affcours['nom_cours'];
    	$heures = $req_horaires['nbheures'];
     
    	$pdf->affichage($cours."\n".$heures);
     
    	}
    $pdf->Output();
    ?>
    Cette version me semble plus logique. Mais je ne maitrise pas bien les fonction, entre les ( ) je dois déclarer les variables qui entre et qui sorte ou uniquement les variables qui entre ?

    Merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/03/2013, 18h07
  2. Afficher les verrous posés sur une base.
    Par WinNew dans le forum Administration
    Réponses: 3
    Dernier message: 27/09/2012, 15h28
  3. Réponses: 0
    Dernier message: 17/06/2010, 22h37
  4. Réponses: 3
    Dernier message: 04/09/2006, 00h34
  5. [FLASH 8] Afficher des images à partir d'une base de données
    Par developpeur_mehdi dans le forum Flash
    Réponses: 9
    Dernier message: 15/03/2006, 10h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo