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] Fonction LoadData introuvable dans le code de fpdf.php


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut [FPDF] Fonction LoadData introuvable dans le code de fpdf.php
    Bonjour tout le monde,

    J'ai ce 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
    <?php
    session_start();
    require('../fpdf.php');
     
    //Connexion a la base
    mysql_connect('localhost','root','mdp');
    mysql_select_db('pharma');
     
    $sql_annee = "SELECT Nom_complet FROM annees WHERE NOM_ANNEE = '".$_SESSION['choix_annee']."'";
    $req_annee = mysql_query($sql_annee);
    $annee = mysql_fetch_array($req_annee);
     
    //$sql_table_decisions = "SELECT * FROM decisions WHERE NOM_ANNEE = '".$_SESSION['choix_annee']."'";
    $sql_table_decisions = "SELECT decisions.*, NOM_ET, PRENOM_ET FROM decisions INNER JOIN etudiants ON decisions.MATRICULE_ET = etudiants.MATRICULE_ET WHERE NOM_ANNEE = '".$_SESSION['choix_annee']."'";
    //echo $sql_table_decisions;
    $req_table_decisions = mysql_query($sql_table_decisions);
    $table_decisions = mysql_fetch_array($req_table_decisions);
     
     
     
    	class PDF extends FPDF
    	{
    		//En-tete
    		function Header()
    		{
    			//Logo
    			$this->Image('../../Images/logo.png',10,8,17);
    			//Police Arial gras 15
    			$this->SetFont('Arial','B',12);
    			//Décalage a droite
    			$this->Cell(80);
    			$this->Ln(20);
    		}
     
    	}
     
    	function ImprovedTable($header,$data)
    		{
    			//Largeurs des colonnes
    			$w=array(40,75,75,30,30);
    			//En-tête
    			for($i=0;$i<count($header);$i++)
    				$this->Cell($w[$i],7,$header[$i],1,0,'C');
    			$this->Ln();
    			//Données
    			foreach($data as $row)
    				{
    					$this->Cell($w[0],6,$row[0],'LR');
    					$this->Cell($w[1],6,$row[1],'LR');
    					$this->Cell($w[2],6,number_format($row[2],0,',',' '),'LR',0,'R');
    					$this->Cell($w[3],6,number_format($row[3],0,',',' '),'LR',0,'R');
    					$this->Ln();
    				}
    			//Trait de terminaison
    			$this->Cell(array_sum($w),0,'','T');
    		}
     
    	//Instanciation de la classe dérivée
    	$pdf=new PDF();
    	$pdf->AddPage();
    	$pdf->SetFont('Arial','B',12);
    	$pdf->Cell(30,10,'Institut de Pharmacie : '. $annee['Nom_complet'],0,'C');
    	$pdf->Ln(5);
    	$pdf->Cell(30,10,'Université Libre de Bruxelles',0,'C');
    	$pdf->Ln(5);
    	$pdf->Cell(30,10,'Délibération du : '.$table_decisions['Date_delibe'],0,'C');
    	$pdf->Ln(15);
    	$pdf->Cell(30,10,'Informations de l\'étudiant : ',0,'C');
    	$pdf->Ln(5);
    	$pdf->Cell(30,10,$table_decisions['MATRICULE_ET']. ' ' . $table_decisions['NOM_ET']. ' ' . $table_decisions['PRENOM_ET'],0,'C');
     
    	//Titres des colonnes
    	$header=array('Mnémonique','Intitulé du cours','Nom du/des Professeur(s)','TH (sur 20)','TP(sur 20)');
    	//Chargement des données
    	$data=$pdf->LoadData($table_decisions);
    	$pdf->SetFont('Arial','',14);
    	$pdf->AddPage();
    	$pdf->BasicTable($header,$data);
    	$pdf->AddPage();
    	$pdf->ImprovedTable($header,$data);
    	$pdf->AddPage();
    	$pdf->FancyTable($header,$data);
     
     
     
    	$pdf->AliasNbPages();
    	$pdf->Output();
     
    ?>
    j'obtiens ce message :

    Fatal error: Call to undefined method PDF::LoadData() in C:\wamp\www\PDF\RN\RN.php on line 75
    La ligne 75 est celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$data=$pdf->LoadData($table_decisions);
    J'ai fait une recherche dans le code source de fpdf.php mais je ne trouve nulle part LoadData.

    Sauriez-vous me dire comment je peux faire pour résoudre ce problème svp ?

    Merci d'avance.

    beegees

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Je suppose que ce Loaddata() vient d'un code que tu as recopié.
    Il faut que tu ajoutes la fonction dans ta classe PDF.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Je suppose que ce Loaddata() vient d'un code que tu as recopié.
    Il faut que tu ajoutes la fonction dans ta classe PDF.
    Bonjour Sabotage,

    En fait, j'ai changé de stratégie.

    J'essaie d'utiliser la fonction Table que voici :

    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
    function Table($query,$prop=array())
    {
    	//Exécute la requęte
    	$res=mysql_query($query) or die('Erreur: '.mysql_error()."<BR>Requęte: $query");
    	//Ajoute toutes les colonnes si aucune n'a été définie
    	if(count($this->aCols)==0)
    	{
    		$nb=mysql_num_fields($res);
    		for($i=0;$i<$nb;$i++)
    			$this->AddCol();
    	}
    	//Détermine les noms des colonnes si non spécifiés
    	foreach($this->aCols as $i=>$col)
    	{
    		if($col['c']=='')
    		{
    			if(is_string($col['f']))
    				$this->aCols[$i]['c']=ucfirst($col['f']);
    			else
    				$this->aCols[$i]['c']=ucfirst(mysql_field_name($res,$col['f']));
    		}
    	}
    	//Traite les propriétés
    	if(!isset($prop['width']))
    		$prop['width']=0;
    	if($prop['width']==0)
    		$prop['width']=$this->w-$this->lMargin-$this->rMargin;
    	if(!isset($prop['align']))
    		$prop['align']='C';
    	if(!isset($prop['padding']))
    		$prop['padding']=$this->cMargin;
    	$cMargin=$this->cMargin;
    	$this->cMargin=$prop['padding'];
    	if(!isset($prop['HeaderColor']))
    		$prop['HeaderColor']=array();
    	$this->HeaderColor=$prop['HeaderColor'];
    	if(!isset($prop['color1']))
    		$prop['color1']=array();
    	if(!isset($prop['color2']))
    		$prop['color2']=array();
    	$this->RowColors=array($prop['color1'],$prop['color2']);
    	//Calcule les largeurs des colonnes
    	$this->CalcWidths($prop['width'],$prop['align']);
    	//Imprime l'en-tęte
    	$this->TableHeader();
    	//Imprime les lignes
    	$this->SetFont('Arial','',11);
    	$this->ColorIndex=0;
    	$this->ProcessingTable=true;
    	while($row=mysql_fetch_array($res))
    		$this->Row($row);
    	$this->ProcessingTable=false;
    	$this->cMargin=$cMargin;
    	$this->aCols=array();
    }
    }
    et la fonction addcol qui y est associée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    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);
    }
    J'ai déclaré la classe dans 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
    <?php
    session_start();
     
    require('../fpdf.php');
    require('../mysql_table.php'); 
    //Connexion a la base
    mysql_connect('localhost','root','mdp');
    mysql_select_db('pharma');
     
    $sql_annee = "SELECT Nom_complet FROM annees WHERE NOM_ANNEE = '".$_SESSION['choix_annee']."'";
    $req_annee = mysql_query($sql_annee);
    $annee = mysql_fetch_array($req_annee);
     
    //$sql_table_decisions = "SELECT * FROM decisions WHERE NOM_ANNEE = '".$_SESSION['choix_annee']."'";
    $sql_table_decisions = "SELECT decisions.*, NOM_ET, PRENOM_ET FROM decisions INNER JOIN etudiants ON decisions.MATRICULE_ET = etudiants.MATRICULE_ET WHERE NOM_ANNEE = '".$_SESSION['choix_annee']."'";
    //echo $sql_table_decisions;
    $req_table_decisions = mysql_query($sql_table_decisions);
    $table_decisions = mysql_fetch_array($req_table_decisions);
     
     
     
    	class PDF extends FPDF
    	{
    		//En-tete
    		function Header()
    		{
    			//Logo
    			$this->Image('../../Images/logo.png',10,8,17);
    			//Police Arial gras 15
    			$this->SetFont('Arial','B',12);
    			//Décalage a droite
    			$this->Cell(80);
    			$this->Ln(20);
    		}
     
    	}
     
     
     
    	//Instanciation de la classe dérivée
    	$pdf=new PDF();
    	$pdf->AddPage();
    	$pdf->SetFont('Arial','B',12);
    	$pdf->Cell(30,10,'Institut de Pharmacie : '. $annee['Nom_complet'],0,'C');
    	$pdf->Ln(5);
    	$pdf->Cell(30,10,'Université Libre de Bruxelles',0,'C');
    	$pdf->Ln(5);
    	$pdf->Cell(30,10,'Délibération du : '.$table_decisions['Date_delibe'],0,'C');
    	$pdf->Ln(15);
    	$pdf->Cell(30,10,'Informations de l\'étudiant : ',0,'C');
    	$pdf->Ln(5);
    	$pdf->Cell(30,10,$table_decisions['MATRICULE_ET']. ' ' . $table_decisions['NOM_ET']. ' ' . $table_decisions['PRENOM_ET'],0,'C');
     
    	$cours = array();
    	$i = 0;
     
    	//$chaine_cours = implode(",",$cours);	
    	$liste_cours = "SELECT DISTINCT MNEMONIC, NOM_COURS, ECTS FROM cours WHERE NOM_ANNEE = '".$_SESSION['choix_annee']."' AND TYPE_DE_COURS = '" . TH."'";
    	echo $liste_cours;
    	//echo 'ici ' . $chaine_cours_id;
     
    	$pdf->AddCol('MNEMONIC',25,'MNEMONIC');
    	$pdf->AddCol('NOM_COURS',150,'NOM_COURS');
    	$pdf->AddCol('ECTS',12,'ECTS');
     
    	//Chargement des données
    	$pdf->Table();
     
     
    	$pdf->AliasNbPages();
    	$pdf->Output();
     
    ?>
    Mais j'obtiens toujours ce message d'erreur :

    Fatal error: Call to undefined method PDF::AddCol() in C:\wamp\www\PDF\RN\RN.php on line 62
    Qu'en penses-tu ?

    Si tu le souhaite, je peux créer un nouveau post.

    Merci d'avance.

    beegees

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    addcol non plus ne fait pas partie de fpdf, tu as oublié d'ajouter cette fonction dans ta classe PDF.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par sabotage Voir le message
    addcol non plus ne fait pas partie de fpdf, tu as oublié d'ajouter cette fonction dans ta classe PDF.
    non en effet, il fait partie de mysql_table.php.

    Je l'ai déclaré en début de code.

    Je ne comprends pas.

    beegees

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    La fonction doit etre dans la classe PDF.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par sabotage Voir le message
    addcol non plus ne fait pas partie de fpdf, tu as oublié d'ajouter cette fonction dans ta classe PDF.
    non en effet, il fait partie de mysql_table.php.

    Je l'ai déclaré en début de code.

    Je ne comprends pas.

    beegees

  8. #8
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu dois construire ton objet avec la classe PDF_MySQL_Table
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Fonction PL/SQL dans du code VB6
    Par pupucette dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 25/05/2012, 10h37
  2. [WD14] Fonction CodDD() introuvable dans un exemple WD
    Par alfaz dans le forum WinDev
    Réponses: 2
    Dernier message: 14/05/2012, 09h31
  3. StoryBoard introuvable dans le code behind
    Par cyberbobby dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 24/04/2009, 13h11
  4. Utiliser une fonction de MATLAB dans un code C++
    Par Bella la vita dans le forum MATLAB
    Réponses: 6
    Dernier message: 15/01/2008, 15h18
  5. Réponses: 10
    Dernier message: 04/04/2007, 16h02

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