Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PDF > FPDF
FPDF Forum d'entraide pour la bibliothèque FPDF permettant de générer des documents PDF en PHP. Avant de poster -> tutoriels FPDF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/06/2011, 11h25   #1
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 74
Points : 15
Points : 15
Par défaut champ date en lettre dans une Cell

Bonjour tout le monde.

Alors voilà aujourd'hui je me lance dans la génération d'un PDF via ma base Mysql.

J'ai presque fini et je cale sur le fait que je voudrais afficher une date de type 24/07 en 24 juillet. Cette date se trouve dans un champ de ma base.

Dans mon code, j'ai bidouillé qques lignes pour afficher la date en lettre mais lors de la génération du PDF j'ai une erreur du style : "FPDF error: Some data has already been output, can't send PDF file"

Ce que je peux comprendre puisque je fais un ECHO avant la génération.

Mais finalement je dois faire comment pour que cela fonctionne dans une Cell ou Multicell ?


Voici toujours une partie de mon code:

Code :
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
// on sélectionne la base
mysql_select_db('test1',$db);
 
$sql = 'SELECT nom, date_debut, heure_debut, heure_fin, description, lieu, adresse, email, telephone  FROM agenda where id=40 ';
 
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
// on fait une boucle qui va faire un tour pour chaque enregistrement
$data = mysql_fetch_assoc($req);
 
    // on affiche les informations de l'enregistrement en cours
 
$dat1 = SUBSTR($data['date_debut'],8,2);	
$dat2 = SUBSTR($data['date_debut'],5,2);	
 
if($dat2==1)
	{
  echo "Janvier";
	}
else if($dat2==2)
  {
  echo "Février";
  }
else if($dat2==3)
  {
  echo "Mars";
  }
else if($dat2==4)
  {
  echo "Avril";
  }
else if($dat2==5)
  {
  echo "Mai";
  }
else if($dat2==6)
  {
  echo "Juin";
  }
else if($dat2==7)
  {
  echo "Juillet";
  }
else if($dat2==8)
  {
  echo "Aout";
  }
else if($dat2==9)
  {
  echo "Sept.";
  }
 
require('fpdf.php');
 
    class PDF extends FPDF
    {
 
}
 
    //Instanciation de la classe dérivée
    $pdf=new PDF();
    $pdf->Open();
    $pdf->AliasNbPages();
    $pdf->AddPage();
 
    $pdf->SetXY(155,105);
    $pdf->SetFont('Arial','',25);
    $pdf->Cell(90,10,$dat1.' '.$dat2,0,1);

Merci déjà pour votre aide.
legrandse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 13h54   #2
Modérateur
 
Avatar de ThomasR
 
Homme Thomas Rambaud
Développeur Web
Inscription : décembre 2007
Messages : 2 140
Détails du profil
Informations personnelles :
Nom : Homme Thomas Rambaud
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 2 140
Points : 2 885
Points : 2 885
Bonjour,
L'erreur est plutôt claire, "Des données ont déjà été rendues (affichées), impossible d'envoyer le fichier PDF".

En effet, il n'est pas possible de spécifier une entête de téléchargement après avoir envoyé du texte, comme tu l'as fait avec echo.

Aussi, je ne vois pas du tout l'intérêt de ton code qui fait un echo du mois. Tu veux l'écrire dans le PDF c'est çà ? Plus, ta classe qui redéfinit FPDF semble inutile actuellement.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mysql_select_db('test1', $db);
$req = mysql_query('SELECT nom, date_debut, heure_debut, heure_fin, description, lieu, adresse, email, telephone  FROM agenda where id=40') or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
$dat1 = substr($data['date_debut'], 8, 2);	
$dat2 = substr($data['date_debut'], 5, 2);	
$mois = array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
$dat_mois = $mois[$dat2 - 1];
 
$pdf=new PDF();
$pdf->Open();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetXY(155,105);
$pdf->SetFont('Arial', '', 25);
$pdf->Cell(90, 10, $dat1 .' '. $dat2, 0, 1);
$pdf->Cell(90, 10, $dat_mois, 0, 1);
Ce qu'il faut comprendre c'est que ici tu ne peux pas faire de echo, il faut utiliser la classe FPDF.
__________________
Développeur Web, accessoirement geek (ou l'inverse)
http://thomasrambaud.com
ThomasR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 14h41   #3
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 74
Points : 15
Points : 15
Je te remercie beaucoup pour ton aide.

Tout fonctionne parfaitement maintenant.
legrandse est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h11.


 
 
 
 
Partenaires

Hébergement Web