FPDF tableau resultat requête
Résolu
mimi8210
Messages postés
167
Date d'inscription
Statut
Membre
Dernière intervention
-
tumes -
tumes -
A voir également:
- FPDF tableau resultat requête
- Tableau word - Guide
- Tableau ascii - Guide
- Tableau croisé dynamique - Guide
- Trier un tableau excel - Guide
- Imprimer tableau excel sur une page - Guide
14 réponses
J'ai trouvé un code, je l'ai adapté à ma base de données, et ça fonctionne très bien, alors voici le lien si ça peut aider :
https://codes-sources.commentcamarche.net/
Merci Beaucoup pour ta patience 'duweb' =)
https://codes-sources.commentcamarche.net/
Merci Beaucoup pour ta patience 'duweb' =)
tumes
merci pour le lien. vous venez de me faire avancer d'un grand pas dans mes travaux. En faite je travaille sur la conception d'un logiciel de gestion d établissement (bulletins de notes, cours des enseignants, paiements des frais de scolarité) et je tenais a afficher les bulletins de note des élèves sous forme de pdf par classe afin qu'il soit facilement imprimable et que l 'on puisse garder une copie. J'ai essayer de travailler avec la librairie html2pdf sans succes (ne gère pas l'affichage des infos de la base de données) mais avec ce lien je vois que c'est bien possible avec FPDF. Vraiment merci
J'ai fait les corrections, et j'ai ce message d'erreur :
Fatal error: Call to undefined method FPDF::LoadData() on line 90
Voici la ligne 90 et la fonction correspondante :
$data=$pdf->LoadData($data);
function LoadData($data)
{
// on récupère les articles commandés
$reqart=mysql_query("SELECT * FROM COMMANDER WHERE numerocommande='".$donneecommande['numerocommande']."' ");
while ($donnee = mysql_fetch_object($reqcommande))
{
$data[] = array($donnee['reference']->champ1,$donnee['libelle']->champ2,$donnee['prixht']->champ3,$donnee['quantite']->champ4,$donnee['tva']->champ5,$donnee['prixttc']->champ6);
}
return $data;
}
J'ai également essayé de ne rien mettre en paramètre dans les deux lignes où l'on trouve LoadData tels que : ' LoadData() ', mais ça ne change rien...
Fatal error: Call to undefined method FPDF::LoadData() on line 90
Voici la ligne 90 et la fonction correspondante :
$data=$pdf->LoadData($data);
function LoadData($data)
{
// on récupère les articles commandés
$reqart=mysql_query("SELECT * FROM COMMANDER WHERE numerocommande='".$donneecommande['numerocommande']."' ");
while ($donnee = mysql_fetch_object($reqcommande))
{
$data[] = array($donnee['reference']->champ1,$donnee['libelle']->champ2,$donnee['prixht']->champ3,$donnee['quantite']->champ4,$donnee['tva']->champ5,$donnee['prixttc']->champ6);
}
return $data;
}
J'ai également essayé de ne rien mettre en paramètre dans les deux lignes où l'on trouve LoadData tels que : ' LoadData() ', mais ça ne change rien...
j'avais pas vu tu l'avais deja mise
$data=$pdf->LoadData($data);
doit etre remplacée par
$data=$pdf->LoadData();
explication :LoadData($data);, ce $data n'existe pas puisque tu vas le créer dans la fonction
donc il faut aussi modifier la fonction
function LoadData($data)
remplacé par
function LoadData()
$data=$pdf->LoadData($data);
doit etre remplacée par
$data=$pdf->LoadData();
explication :LoadData($data);, ce $data n'existe pas puisque tu vas le créer dans la fonction
donc il faut aussi modifier la fonction
function LoadData($data)
remplacé par
function LoadData()
pour cet exemple il utilise le fichier de données pays.txt disponible à cetet adresse :
http://www.fpdf.org/fr/tutorial/pays.txt
donc si tu veux utilise cet exemple :
- entete du tableau $header=array('Pays','Capitale','Superficie (km²)','Pop. (milliers)'); à modifier en fonction
- ta requete
- création d'un fichier
- insertion des données dans le fichier avec une boucle while de ta requete
tu peux aussi créer directement un tableau multidemensionnel avec la boucle while et modifier la fonction function "LoadData($file)"
tu mets seulement return $data; pour cette fonction
http://www.fpdf.org/fr/tutorial/pays.txt
donc si tu veux utilise cet exemple :
- entete du tableau $header=array('Pays','Capitale','Superficie (km²)','Pop. (milliers)'); à modifier en fonction
- ta requete
- création d'un fichier
- insertion des données dans le fichier avec une boucle while de ta requete
tu peux aussi créer directement un tableau multidemensionnel avec la boucle while et modifier la fonction function "LoadData($file)"
tu mets seulement return $data; pour cette fonction
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je comprends un peu mieux, mais j'ai encore beaucoup de mal à réaliser mon code, sachant que je voudrais réalisé mon tableau avec la deuxième méthode que tu m'as proposé (sachant aussi qu'avec ce "langage" que je ne maîtrise pas du tout, je ne sais pas comment modifier pour ajouter le while que tu m'as conseillé)... Voici mon code:
<?php
require('dossierFPDF/fpdf.php');
require('connexionBDD.php');
// on récupère les informations de la commande
$reqcommande=mysql_query("SELECT * FROM COMMANDE WHERE numerocommande='090610162545'");
$donneecommande=mysql_fetch_array($reqcommande);
class PDF extends FPDF
{
//Chargement des données
function LoadData()
{
// on récupère les articles commandés
$reqart=mysql_query("SELECT * FROM COMMANDER WHERE numerocommande='".$donneecommande['numerocommande']."' ");
$donneeart=mysql_fetch_array($reqart);
return $donneeart;
}
//Tableau amélioré
function ImprovedTable($header,$donneeart)
{
//Largeurs des colonnes
$w=array(40,40,40,40,40,40);
//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($donneeart 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->Cell($w[4],6,number_format($row[4],0,',',' '),'LR',0,'R');
$this->Cell($w[5],6,number_format($row[5],0,',',' '),'LR',0,'R');
$this->Ln();
}
//Trait de terminaison
$this->Cell(array_sum($w),0,'','T');
}
}
$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
$header=array('Référence','Libellé','Prix HT','TVA','Quantité','Prix TTC');
$pdf->ImprovedTable($header,$donneeart);
$pdf->Output();
?>
Message d'erreur affiché :
Fatal error: Call to undefined method FPDF::ImprovedTable()
<?php
require('dossierFPDF/fpdf.php');
require('connexionBDD.php');
// on récupère les informations de la commande
$reqcommande=mysql_query("SELECT * FROM COMMANDE WHERE numerocommande='090610162545'");
$donneecommande=mysql_fetch_array($reqcommande);
class PDF extends FPDF
{
//Chargement des données
function LoadData()
{
// on récupère les articles commandés
$reqart=mysql_query("SELECT * FROM COMMANDER WHERE numerocommande='".$donneecommande['numerocommande']."' ");
$donneeart=mysql_fetch_array($reqart);
return $donneeart;
}
//Tableau amélioré
function ImprovedTable($header,$donneeart)
{
//Largeurs des colonnes
$w=array(40,40,40,40,40,40);
//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($donneeart 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->Cell($w[4],6,number_format($row[4],0,',',' '),'LR',0,'R');
$this->Cell($w[5],6,number_format($row[5],0,',',' '),'LR',0,'R');
$this->Ln();
}
//Trait de terminaison
$this->Cell(array_sum($w),0,'','T');
}
}
$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
$header=array('Référence','Libellé','Prix HT','TVA','Quantité','Prix TTC');
$pdf->ImprovedTable($header,$donneeart);
$pdf->Output();
?>
Message d'erreur affiché :
Fatal error: Call to undefined method FPDF::ImprovedTable()
2 raisosn qui font que ca ne fonctionne pas :
-$donneecommande=mysql_fetch_array($reqcommande); retourne un tableau mais pas multidimensionnel
- $pdf->ImprovedTable($header,$donneeart); => $donneeart n'existe pas encore à ce moment
corrections :
- renommer les $donneeart en $data comme avant
- modification de la requete :
supprimer la ligne -> $donneecommande=mysql_fetch_array($reqcommande);
et la remplacer par :
et enfin modifier $pdf=new FPDF(); par $pdf=new PDF();
et ca fonctionnera
-$donneecommande=mysql_fetch_array($reqcommande); retourne un tableau mais pas multidimensionnel
- $pdf->ImprovedTable($header,$donneeart); => $donneeart n'existe pas encore à ce moment
corrections :
- renommer les $donneeart en $data comme avant
- modification de la requete :
supprimer la ligne -> $donneecommande=mysql_fetch_array($reqcommande);
et la remplacer par :
while ($donnee = mysql_fetch_object($reqcommande)) { $data[] = array($donnee->champ1,$donnee->champ2,$donnee->champ3, autant que nécessaire); }
et enfin modifier $pdf=new FPDF(); par $pdf=new PDF();
et ca fonctionnera
champ1, champ2, étaient des exemples car je ne connaissais pas le nom des champs de la table
donc $data dans ton cas doit s'écrire
$data[] = array($donnee->reference,$donnee->libelle,$donnee->prixht,$donnee->quantite,$donnee->tva,$donnee->prixttc);
donc $data dans ton cas doit s'écrire
$data[] = array($donnee->reference,$donnee->libelle,$donnee->prixht,$donnee->quantite,$donnee->tva,$donnee->prixttc);
t'as modifié $pdf=new FPDF(); par $pdf=new PDF(); ?
si tu peux mettre la ligne 90 ou tout le code (sans le mot de passe bdd :-))
si tu peux mettre la ligne 90 ou tout le code (sans le mot de passe bdd :-))
Quand je fais la modification $pdf=new PDF(); il y a ce message d'erreur:
Fatal error: Class 'PDF' not found in E:\SiteEmilie\bondecommande.php on line 10 (ligne 10 est la ligne de la modif)
Voici le code de la ligne 90 :
$data=$pdf->LoadData($data);
Et voici le code 'entier' :
// on récupère les informations de la commande
$reqcommande=mysql_query("SELECT * FROM COMMANDE WHERE numerocommande='090610162545'");
$donneecommande=mysql_fetch_array($reqcommande);
class PDF extends FPDF
{
//Chargement des données
function LoadData()
{
// on récupère les articles commandés
$reqart=mysql_query("SELECT * FROM COMMANDER WHERE numerocommande='".$donneecommande['numerocommande']."' ");
while ($donnee = mysql_fetch_object($reqcommande))
{
$data[]=array($donnee->reference,$donnee->libelle,$donnee->prixht,$donnee->quantite,$donnee->tva,$donnee->prixttc);
}
return $data;
}
//Tableau amélioré
function ImprovedTable($header,$data)
{
//Largeurs des colonnes
$w=array(40,40,40,40,40,40);
//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->Cell($w[4],6,number_format($row[4],0,',',' '),'LR',0,'R');
$this->Cell($w[5],6,number_format($row[5],0,',',' '),'LR',0,'R');
$this->Ln();
}
//Trait de terminaison
$this->Cell(array_sum($w),0,'','T');
}
}
$pdf=new FPDF();
$pdf->AddPage();
//Boucle sur les resultats
$data=$pdf->LoadData($data);
$header=array('Référence','Libellé','Prix HT','TVA','Quantité','Prix TTC');
$pdf->ImprovedTable($header,$data);
// Affichage du fichier pdf
$pdf->Output();
Je te remercie de m'accorder de ton temps!
Fatal error: Class 'PDF' not found in E:\SiteEmilie\bondecommande.php on line 10 (ligne 10 est la ligne de la modif)
Voici le code de la ligne 90 :
$data=$pdf->LoadData($data);
Et voici le code 'entier' :
// on récupère les informations de la commande
$reqcommande=mysql_query("SELECT * FROM COMMANDE WHERE numerocommande='090610162545'");
$donneecommande=mysql_fetch_array($reqcommande);
class PDF extends FPDF
{
//Chargement des données
function LoadData()
{
// on récupère les articles commandés
$reqart=mysql_query("SELECT * FROM COMMANDER WHERE numerocommande='".$donneecommande['numerocommande']."' ");
while ($donnee = mysql_fetch_object($reqcommande))
{
$data[]=array($donnee->reference,$donnee->libelle,$donnee->prixht,$donnee->quantite,$donnee->tva,$donnee->prixttc);
}
return $data;
}
//Tableau amélioré
function ImprovedTable($header,$data)
{
//Largeurs des colonnes
$w=array(40,40,40,40,40,40);
//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->Cell($w[4],6,number_format($row[4],0,',',' '),'LR',0,'R');
$this->Cell($w[5],6,number_format($row[5],0,',',' '),'LR',0,'R');
$this->Ln();
}
//Trait de terminaison
$this->Cell(array_sum($w),0,'','T');
}
}
$pdf=new FPDF();
$pdf->AddPage();
//Boucle sur les resultats
$data=$pdf->LoadData($data);
$header=array('Référence','Libellé','Prix HT','TVA','Quantité','Prix TTC');
$pdf->ImprovedTable($header,$data);
// Affichage du fichier pdf
$pdf->Output();
Je te remercie de m'accorder de ton temps!
J'ai essayé, ça ne change rien, toujours le même message :
Fatal error: Call to undefined method FPDF::LoadData()
=(
Fatal error: Call to undefined method FPDF::LoadData()
=(
pour ne pas mourir idiot je t'ai mis une image avec les erreurs. je n'ai pas mis toutes les corrections puisque t'as trouvé une solution
http://imagik.fr/view/260157
http://imagik.fr/view/260157