begin process at 2012 02 11 00:00:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

FPDF et MySQL mise en page


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

FPDF et MySQL mise en page

mardi 17 février 2009 à 13:24:22 | FPDF et MySQL mise en page

bruno3591

Bonjour,

Ca fait plusieurs jours que je cherche la solution , je m'en approche mais sans y arriver complètement, je fais donc appel à vos lumières :).
Ce code doit générer un PDF contenant des informations issues d'une BDD MySQL. Le but est d'avoir une étiquette par page, avec sur chacune les informations d'un enregistrement MySQL. Pour le moment j'arrive à générer une seule étiquette par PDF, j'aimerais pouvoir éditer toutes les étiquettes d'un coup dans un seul PDF.
Merci.

<?php

include('connection.inc.php');

require('fpdf.php');

$id = $_POST['id'];
$id_annee = $_POST['annee'];

$req = "SELECT * FROM agent";
$result = mysql_query($req);
//$total = mysql_num_rows($result);

while($row = mysql_fetch_array($result))
{
$voiture1 = $row["immat_auto1"];
$voiture2 = $row["immat_auto2"];
$moto = $row["immat_moto"];
 

class PDF extends FPDF
{
//En-tête
function Header()
{
    //Logo
    $this->Image('logo_hal.jpg',20,25,33);
    $this->Image('logo.jpg',165,10,33);
    //Police Arial gras 15
    $this->SetFont('Arial','B',12);
    //Décalage à droite
    //$this->Cell(73);
    $this->SetXY(80,30);
    //Titre
    $this->Cell(45,7,'Autorisation d\'accés',1,'C');
    $this->SetXY(79,40);
    $this->Cell(90,7,'Plate-forme logistique');
}
}

//date et immat position cellules
$dimension=array(145,210);
$pdf=new PDF('L','mm',$dimension);
$pdf->AddPage();
$pdf->SetFont('Arial','B',35);
$pdf->SetTextColor(255,0,0);
$pdf->SetXY(70,60);
$pdf->Cell(50,10,$id_annee);
$pdf->SetFont('Arial','B',58);
$pdf->SetTextColor(128);
$pdf->SetXY(50,93);
$pdf->Cell(50,10,$voiture1);

$pdf->Output();
}

mardi 17 février 2009 à 21:13:10 | Re : FPDF et MySQL mise en page

TychoBrahe

Salut,

Commence donc déjà par déclarer ta classe en dehors du while.
mercredi 18 février 2009 à 09:27:58 | Re : FPDF et MySQL mise en page

bruno3591

Ok, c'est chose faite, il ne reste plus que ça :
<?php

include('connection.inc.php');

require 'fpdf.php';
require 'class_pdf.php';

$id = $_POST['id'];
$id_annee = $_POST['annee'];

$req = "SELECT * FROM agent";
$result = mysql_query($req);
//$total = mysql_num_rows($result);

while($row = mysql_fetch_array($result))
{
$voiture1 = $row["immat_auto1"];
$voiture2 = $row["immat_auto2"];
$moto = $row["immat_moto"];
 

//date et immat position cellules
$dimension=array(145,210);
$pdf=new PDF('L','mm',$dimension);
$pdf->AddPage();
$pdf->SetFont('Arial','B',35);
$pdf->SetTextColor(255,0,0);
$pdf->SetXY(70,60);
$pdf->Cell(50,10,$id_annee);
$pdf->SetFont('Arial','B',58);
$pdf->SetTextColor(128);
$pdf->SetXY(50,93);
$pdf->Cell(50,10,$voiture1);

$pdf->Output();
}


mercredi 18 février 2009 à 09:41:12 | Re : FPDF et MySQL mise en page

bruno3591

J'ai modifié mon code d'une manière qui me semble plus logique, mais je n'ai toujours qu'un seul enregistrement qui s'affiche.

<?php

include('connection.inc.php');

require 'fpdf.php';
require 'class_pdf.php';

$id = $_POST['id'];
$id_annee = $_POST['annee'];

$req = 'SELECT * FROM agent';
$result = mysql_query($req);
$total = mysql_num_rows($result);

if($total) {

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

//date et immat position cellules
$dimension=array(145,210);
$pdf=new PDF('L','mm',$dimension);
$pdf->AddPage();
$pdf->SetFont('Arial','B',35);
$pdf->SetTextColor(255,0,0);
$pdf->SetXY(70,60);
$pdf->Cell(50,10,$id_annee);
$pdf->SetFont('Arial','B',58);
$pdf->SetTextColor(128);
$pdf->SetXY(50,93);
$pdf->Cell(50,10,$row["immat_auto1"]);

$pdf->Output();
}
}

mercredi 18 février 2009 à 13:29:30 | Re : FPDF et MySQL mise en page

bruno3591

Personne pour un un coup de main ?
mercredi 18 février 2009 à 19:29:22 | Re : FPDF et MySQL mise en page

TychoBrahe

Tu instancie ta classe dans le while, pas bon ça. En fait, retire tout du while sauf ce qui sert a ajouter une ligne d'enregistrement dans le pdf.

Pense également a sauter des lignes après chaque enregistrement (avec Ln il me semble).
mercredi 18 février 2009 à 20:37:13 | Re : FPDF et MySQL mise en page

bruno9173

Ok j'ai laissé le strict nécessaire dans le while, mais je n'ai toujours qu'un seul enregistrement généré dans le pdf. Sur le coup je séche car d'habitude je mis prend de cette manière pour afficher un array (sans pdf).

<?php

include('connection.inc.php');

require 'fpdf.php';
require 'class_pdf.php';

$id = $_POST['id'];
$id_annee = $_POST['annee'];

$req = 'SELECT * FROM agent';
$result = mysql_query($req);
$total = mysql_num_rows($result);

if($total) {

while($row = mysql_fetch_array($result))
{
$voiture1 = $row["immat_auto1"];
}
}

//date et immat position cellules
$dimension=array(145,210);
$pdf=new PDF('L','mm',$dimension);
$pdf->AddPage();
$pdf->SetFont('Arial','B',35);
$pdf->SetTextColor(255,0,0);
$pdf->SetXY(70,60);
$pdf->Cell(50,10,$id_annee);
$pdf->SetFont('Arial','B',58);
$pdf->SetTextColor(128);
$pdf->SetXY(50,93);
$pdf->Cell(50,10,$voiture1);

$pdf->Output();

?>
mercredi 18 février 2009 à 21:10:02 | Re : FPDF et MySQL mise en page

TychoBrahe

Réponse acceptée !
Erf, est-ce que tu te rend compte de ce que tu écrit ? Essaye de lire ton code. Lisons le donc ensemble d'ailleurs :
Tu fais ta requête SQL et tu test le nombre d'entrées retournées. Si le nombre d'entrée est différent de zéro, tu fait la boucle suivante : pour chaque entrée retournée tu assigne la valeur du champ immat_auto1 dans une variable (tu remarquera qu'a chaque passage l'ancienne valeur est écrasée et a la fin tu n'a donc que la dernière). Une fosi que tu as fait ta boucle qui n'a aucun sens tu vas créer un nouveau pdf avec deux cellules l'une a côté de l'autre (une ligne quoi).
Question gagnante : est-ce que tu crois que les autres cellules vont se créer par magie ? Tu dit d'en créer une, pas d'en créer d'autre.
Tu remarquera qu'avant tu créais un nouveau pdf a chaque passage dans la boucle. Perso je n'ai jamais essayé une telle chose mais je suppose qu'a chaque fois l'ancien devais être écrasé.


Reprenons maintenant ce que tu cherche a faire, et dans l'ordre :
1. tu fais ta requette (c'est ok ça).
2. tu créé le pdf et y définit la police etc.
3. pour chaque résultat de ta requette (boucle) tu vas ajouter une nouvelle ligne a ton pdf.
4. tu sauvegarde ton pdf.
jeudi 19 février 2009 à 10:48:23 | Re : FPDF et MySQL mise en page

bruno3591

Merci, tout fonctionne , j'ai compris mon erreur. Je met le code pour ceux qui chercheraient ce genre d'info.
Reste plus qu'a intégrer les autres champs.

<?php

include('connection.inc.php');

require 'fpdf.php';
require 'class_pdf.php';

$id = $_POST['id'];
$id_annee = $_POST['annee'];

$req = 'SELECT * FROM agent ORDER BY nom';
$result = mysql_query($req);

//date et immat position cellules
$dimension=array(145,210);
$pdf=new PDF('L','mm',$dimension);


$total = mysql_num_rows($result);

if($total) {

while($row = mysql_fetch_array($result))
{
$pdf->AddPage();
$pdf->SetFont('Arial','B',35);
$pdf->SetTextColor(255,0,0);
$pdf->SetXY(70,60);
$pdf->Cell(50,10,$id_annee);
$pdf->SetFont('Arial','B',58);
$pdf->SetTextColor(128);
$pdf->SetXY(50,93);
$pdf->Cell(50,10,$row["immat_auto1"]);
}
}
$pdf->Output();




vendredi 20 février 2009 à 11:27:20 | Re : FPDF et MySQL mise en page

bruno3591

Hello, je reviens vers vous pour finaliser la chose
Je ne mens sors pas, je voudrais éditer en pdf seulement les champs d'une table ou il y a une string. (ce sont des immatriculations). J'affiche bien tous es pdf mais même les champs ou il n'y a rien. J'ai tout tenté dans ma requête mysql : IS NOT NULL etc...mais rien n'y fait.
Merci à tous.

<?php

include('connection.inc.php');

require 'fpdf.php';
require 'class_pdf.php';

$id = $_POST['id'];
$id_annee = $_POST['annee'];

$req = 'SELECT * FROM agent WHERE immat_auto2 IS NOT NULL ORDER BY nom';
$result = mysql_query($req);

//date et immat position cellules
$dimension=array(145,210);
$pdf=new PDF('L','mm',$dimension);

$total = mysql_num_rows($result);

if (isset($_POST['editer1']))
{
while($row = mysql_fetch_array($result)) {
$immat_auto1 = $_POST['immat_auto1'];

$pdf->AddPage();
$pdf->SetFont('Arial','B',35);
$pdf->SetTextColor(255,0,0);
$pdf->SetXY(70,60);
$pdf->Cell(50,10,$id_annee);
$pdf->SetFont('Arial','B',58);
$pdf->SetTextColor(128);
$pdf->SetXY(50,93);
$pdf->Cell(50,10,$row["immat_auto1"]);
$pdf->SetFont('Arial','B',12);
$pdf->SetTextColor(32,32,32);
$pdf->SetXY(75,112);
$pdf->Cell(30,10,"Numéro enregistrement ".$row["id"]."");
}
}

if (isset($_POST['editer2']))
{
while($row = mysql_fetch_array($result)) {
$immat_auto2 = $_POST['immat_auto2'];

$pdf->AddPage();
$pdf->SetFont('Arial','B',35);
$pdf->SetTextColor(255,0,0);
$pdf->SetXY(70,60);
$pdf->Cell(50,10,$id_annee);
$pdf->SetFont('Arial','B',58);
$pdf->SetTextColor(128);
$pdf->SetXY(50,93);
$pdf->Cell(50,10,$row["immat_auto2"]);
$pdf->SetFont('Arial','B',12);
$pdf->SetTextColor(32,32,32);
$pdf->SetXY(75,112);
$pdf->Cell(30,10,"Numéro enregistrement ".$row["id"]."");
}
}
if (isset($_POST['editer3']))
{
while($row = mysql_fetch_array($result)) {
$immat_moto = $_POST['immat_moto'];

$pdf->AddPage();
$pdf->SetFont('Arial','B',35);
$pdf->SetTextColor(255,0,0);
$pdf->SetXY(70,60);
$pdf->Cell(50,10,$id_annee);
$pdf->SetFont('Arial','B',58);
$pdf->SetTextColor(128);
$pdf->SetXY(50,93);
$pdf->Cell(50,10,$row["immat_moto"]);
$pdf->SetFont('Arial','B',12);
$pdf->SetTextColor(32,32,32);
$pdf->SetXY(75,112);
$pdf->Cell(30,10,"Numéro enregistrement ".$row["id"]."");
}
}
$pdf->Output();

1 2

Cette discussion est classée dans : mysql, id, pdf, fpdf, cell


Répondre à ce message

Sujets en rapport avec ce message

generation du resultat d'une requete sur pdf [ par soumboula ] Warning: require(fpdf.php) [function.require]: failed to open stream: No such file or directory in C:\files\ppp.php on line 2Fatal error: FPDF [ par spamito ] Salut,J'utilise FPDF pour créer un fichier .pdf contenant un article, voici mon code :require('fpdf.php');$id=$_GET['id'];include('config/config.php') PHP MySQL et Cession : Problème lors d'un UPDATE de la table [ par cw75116 ] Bonsoir, ou plutôt bonjour à tous , Après de longues heures a chercher sur le net, me creuser les méninges je viens vous demander de l'aide . Sur m la partie encadrée par les étoiles ne fonctionn pas, je veux avoir une solution [ par chourouk86 ] //Données d'un client//$mail=$_POST['mail'];$mp=$_POST['mp'];//Données d'une reservation//if(isset($_GET['id_vehicule'])){$id_vehicule=$_G UDAPTE fonctionnel sur easy php en local mais pas en ligne [ par mnyloko ] Hello à tous  J'ai un petit problème d'UPDATE sur un site admin qui gère des articles ( Catalogue ) Ceux-ci marchent très bien en local mais lorsque j retour à la ligne et cellules fpdf marche pas [ par Max57100 ] bonjour, je n'arrive pas à mettre du texte dans les cellules. Quand je met du texte, impossible d'avoir un retour à la ligne automatique, donc tout es Enregistrer plusieurs résultats d'un foreach dans une table [ par cyse ] Bonjour,J'ai réussis à mettre en place des checkbox avec plusieurs choix possibles, et à récupérer les id de chacun des résultats séparés par un espac Problémes avec Fpdf [ par Psyroy ] Bonjour à tous,                 Je débute dans les scripts PHP ainsi que dans le module Fpdf, j'aurai quelque questions a posés  :1)Je voudrai savoir PHP, boucles while et formulaires [ par rinpe ] Bonjour,Cela fait maintenant trop de temps que je cherche désespérement une solution en parcourant les forums, mais aucun des cas que j'ai lu ne resse Questions sur week planner PHP/SQL [ par Dusty35 ] Bonjour à tous,Je vous explique brièvement mon projet:Je prépare un gros voyage avec beaucoup d'activités et je souhaiterais utiliser [url=http://www.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,880 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales