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

PHP & Base de données Discussion :

Afficher des données mysql en PDF


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2013
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2013
    Messages : 94
    Points : 44
    Points
    44
    Par défaut Afficher des données mysql en PDF
    bonjour,

    comme le titre dis j ai des soucis pour recuperer mes valeurs dans ma base de données et les afficher sur un pdf

    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
    <?php
    require('connexion.php');
    $tmp2=10;
                    $conn;
                    $T=1179;
                    $table= array();
                    $cpt=0;
                    $i=0;
                    $j=0;
     
                    $stid5 = oci_parse($conn, "SELECT BODY_NAME_EN, BODY_ACRONYM, BODY_ID FROM BODY WHERE BODY_ID in (select role_body_id_fk from role where role_member_id_fk in (select member_id from member where MEMBER_NATION_COUNTRY_ID_FK=".$tmp2." AND BODY_BODYTYPE_CODE_FK='DE' OR BODY_BODYTYPE_CODE_FK='AP')) order by body_name_en");
                    oci_execute($stid5);
                    $countBody = oci_fetch_all($stid5, $res, 0, -1, OCI_FETCHSTATEMENT_BY_ROW);
                $j=0;
                while ($j < $countBody){
     
     
    ?>
     
     
    <style type="text/css">
    table{
    width:100%;
     
    }
     
    </style>
     
     
    <page backtop="20mm" backleft="10mm" backright="10mm" backbottom="30mm">
     
     
    <table>
        <tr>
                <td style="width:75%; background:#FF0000;">
                <?php echo $res[$j]['BODY_NAME_EN'];
                            $j++;
                            }
                ?>
     
                </td>
                <td style="width:25%; background:green; " >are</td>
        </tr>
     
    </table>
     
    </page>
     
     
     
    <?php 
    $content=ob_get_clean();
    require('html2pdf/html2pdf.class.php');
    try{
     
    $pdf = new HTML2PDF('P','A4','fr');
    $pdf->writeHTML($content);
    $pdf->Output('testpdf.pdf');
    }catch (HTML2PDF_exception $e){
    die($e);
    }?>
    car quand je veux le mettre dans une table il me disent ceci

    Nom : fermer.png
Affichages : 839
Taille : 21,1 Ko

    pourtant toutes mes balise sont fermé !!

    je ne comprend pas du tout

    quelqu un pourrais m aider ?

    MERCI

    ----------------------------MISE AJOUR-------------------------------

    voici j ai mis un ob_start(); et j arrive a avoir ceci

    Nom : imageiieie.png
Affichages : 737
Taille : 14,9 Ko

    mais je n arrive pas a prendre le dernier element de ma requete je ne comprend pas pourquoi il me mette ce message d erreur

    TCPDF ERROR: Some data has already been output, can't send PDF file

    merci pour vos reponse

  2. #2
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    Bonsoir,

    je suis pas un utilisateur de cette bibliothèque, mais il me semble que tu as un problème avec le tampon de sorti, vu que ton output n'est pas clean au moment de faire le $pdf->output()...
    Dans le code que tu mets, tu utilises $content = ob_get_clean() sans l'initialiser avec :
    (en tout début de ton code, cf manuel)
    cela me paraît suffisant pour expliquer ton message d'erreur.

    EDIT: OK, je viens de voir que tu as essayé avec ob_start... tu l'as mis où ? rien d' "outputé" avant, pas d'espace oublié avant tes <?php?
    My daughter, my laptop, my bike and my double-sticks...

  3. #3
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2013
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2013
    Messages : 94
    Points : 44
    Points
    44
    Par défaut
    merci pour ta reponse

    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
    <?php
    require('connexion.php');		
    	ob_start();
    ?>
     
     
    <style type="text/css">
    table{
    width:100%;
     
    }
     
    </style>
     
     
    <page backtop="20mm" backleft="10mm" backright="10mm" backbottom="30mm">
     
     
    <table>
    	<tr>
    			<th>titre		</th>
    			<th>auteur</th>
    			<th>maison d'edition</th>
    			<th>prix</th>
    	</tr>
    	<?php 
    				$conn;
    				$tmp2=16;
    				$table= array();
    				$stid5 = oci_parse($conn, "SELECT BODY_NAME_EN, BODY_ACRONYM, BODY_ID FROM BODY WHERE BODY_ID in (select role_body_id_fk from role where role_member_id_fk in (select member_id from member where MEMBER_NATION_COUNTRY_ID_FK=".$tmp2." AND BODY_BODYTYPE_CODE_FK='DE' OR BODY_BODYTYPE_CODE_FK='AP' )) order by body_name_en");
    				oci_execute($stid5);
    				$countBody = oci_fetch_all($stid5, $res, 0, -1, OCI_FETCHSTATEMENT_BY_ROW);
    			$j=0;
    			while ($j < $countBody){
    			?>
    			<tr>
    			<?php echo $res[$j]['BODY_NAME_EN'];		
    			$j++;
    			}	?>
     
     
    			</tr>
     
    </table>
     
    </page>
     
     
     
    <?php 
     
    $content=ob_get_clean();
    require('html2pdf/html2pdf.class.php');
    try{
     
    $pdf = new HTML2PDF('P','A4','fr');
    $pdf->writeHTML($content);
    $pdf->Output('testpdf.pdf');
    }catch (HTML2PDF_exception $e){
    die($e);
    }?>
    malheureusement cela fonctionne toujous pas ...

    si tu utilise une autre libraire qui fonctionne mieux, je pourrais toujours changer mais je dois comprend le fonctionnement

    voici le message d erreur qui me mette

    ERREUR n°4
    Fichier : R:\wamp\www\Projet\html2pdf\_class\parsingHtml.class.php
    Ligne : 119

    Code HTML non valide, les balises ne sont pas fermées dans le bon ordre.
    Etat :

    Array
    (
    [0] => page
    [1] => table
    [2] => tr
    [3] => tr
    [4] => tr
    [5] => tr
    [6] => tr
    [7] => tr
    [8] => tr
    [9] => tr
    [10] => tr
    [11] => tr
    [12] => tr
    )



    HTML : ...ed States </tr> </table> </page>...

  4. #4
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    Ok,
    tu parles de deux messages d'erreurs différents, et je ne sais pas lequel est le plus pertinent pour toi...
    Commençons par l'HTML non valide:
    commente cette partie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    require('html2pdf/html2pdf.class.php');
    try{
     
         $pdf = new HTML2PDF('P','A4','fr');
         $pdf->writeHTML($content);
         $pdf->Output('testpdf.pdf');
    }catch (HTML2PDF_exception $e){
         die($e);
    }
    et fait un echo de $content et regarde si le code html généré par ton code est correct....
    My daughter, my laptop, my bike and my double-sticks...

  5. #5
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2013
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2013
    Messages : 94
    Points : 44
    Points
    44
    Par défaut
    merci pour ta reponse

    quand je fais comme tu m as dit je n ai aucun probleme , tout fonctionne bien

    maintenant comment regler le reste pour le mettre en pdf

  6. #6
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    Citation Envoyé par djoufouf Voir le message
    quand je fais comme tu m as dit je n ai aucun probleme , tout fonctionne bien
    c'est pas étonnant, ton code comme cela produit du html et les navigateurs font en sorte que les erreurs HTML (des balises ouvertes et non refermées par exemple) ne gênent pas l'affichage .
    Regarde dans ton code HTML produit si tout est ok, ou poste le ici que je puisse voir...
    My daughter, my laptop, my bike and my double-sticks...

  7. #7
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2013
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2013
    Messages : 94
    Points : 44
    Points
    44
    Par défaut
    je comprend pas ce que tu veux dire

    voici mon code html

    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
     
    <style type="text/css">
    table{
    width:100%;
     
    }
     
    </style>
     
     
    <page backtop="20mm" backleft="10mm" backright="10mm" backbottom="30mm">
     
     
    <table>
    	<tr>
    			<th>titre		</th>
    			<th>auteur</th>
    			<th>maison d'edition</th>
    			<th>prix</th>
    	</tr>
    <tr>
    </tr>
    </table>
     
    </page>
    et celui ci avec le php

    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
    <page backtop="20mm" backleft="10mm" backright="10mm" backbottom="30mm">
     
     
    <table>
    	<tr>
    			<th>titre		</th>
    			<th>auteur</th>
    			<th>maison d'edition</th>
    			<th>prix</th>
    	</tr>
    	<?php 
    				$conn;
    				$tmp2=16;
    				$table= array();
    				$stid5 = oci_parse($conn, "SELECT BODY_NAME_EN, BODY_ACRONYM, BODY_ID FROM BODY WHERE BODY_ID in (select role_body_id_fk from role where role_member_id_fk in (select member_id from member where MEMBER_NATION_COUNTRY_ID_FK=".$tmp2." AND BODY_BODYTYPE_CODE_FK='DE' OR BODY_BODYTYPE_CODE_FK='AP' )) order by body_name_en");
    				oci_execute($stid5);
    				$countBody = oci_fetch_all($stid5, $res, 0, -1, OCI_FETCHSTATEMENT_BY_ROW);
    			$j=0;
    			while ($j < $countBody){
    			?>
    			<tr>
    			<?php echo $res[$j]['BODY_NAME_EN'];		
    			$j++;
    			}	?>
     
     
    			</tr>
     
    </table>
     
    </page>

  8. #8
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    non, justement, ce qui m'intéresse, c'est le code html généré par ton php, pour voir s'il contient des erreurs (par exemple: structure html non conforme)
    notamment parce que tu as une balise ouvrante <tr> dans ton while et une seule balise fermante </tr> à l'extérieur de ton while, (donc plusieurs balises <tr> ouvertes et une seule </tr> fermante)
    My daughter, my laptop, my bike and my double-sticks...

  9. #9
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2013
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2013
    Messages : 94
    Points : 44
    Points
    44
    Par défaut
    Merci 1000x pour cela c est vrai que avec mon while j ouvrais n fois des <tr> mais je n ai fermais qu un

    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
    	<?php 
    				$conn;
    				$tmp2=16;
    				$table= array();
    				$stid5 = oci_parse($conn, "SELECT BODY_NAME_EN, BODY_ACRONYM, BODY_ID FROM BODY WHERE BODY_ID in (select role_body_id_fk from role where role_member_id_fk in (select member_id from member where MEMBER_NATION_COUNTRY_ID_FK=".$tmp2." AND BODY_BODYTYPE_CODE_FK='DE' OR BODY_BODYTYPE_CODE_FK='AP' )) order by body_name_en");
    				oci_execute($stid5);
    				$countBody = oci_fetch_all($stid5, $res, 0, -1, OCI_FETCHSTATEMENT_BY_ROW);
    			$j=0;
    			while ($j < $countBody){
    			?>
    			<tr>
    			<?php echo $res[$j]['BODY_NAME_EN'];		
    			$j++;
    			echo "<br></tr>";
    			}	?>
    j ai arranger cela et ca fonctionne maintenant

    je peux enfin continuer mtn

    merci encore

  10. #10
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2013
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2013
    Messages : 94
    Points : 44
    Points
    44
    Par défaut
    voila j ai un autre soucis ,

    je voudrais afficher mes organes et mes noms de membres mais le soucis c est qu il prend trop de temps et puis il s arrete pour me dire

    ERREUR n°2
    Fichier : R:\wamp\www\Projet\html2pdf\html2pdf.class.php
    Ligne : 3396

    Phrase de 1000 lignes => trop long
    Phrase : India
    Largeur case : 180.00155555556
    Longueur text : 5.7361666666667
    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
    99
    <?php
    require('connexion.php');		
    	ob_start();
    ?>
     
     <link rel="stylesheet" href="style.css" />
    <style type="text/css">
    table{
    width:100%;
     
    }
     
    .table-header-rotated{
    color: red;
    text-align: right;
     width: auto;
     height: 15px;
     font-size:10px;
     padding-right:0px;
     
     
    }
    .table-header-rotated th {
    transform: rotate(90deg);
    	transform-origin: left top 0;}
     
    </style>
     
     
    <page backtop="20mm" backleft="10mm" backright="10mm" backbottom="30mm">
     
    <?php
    echo"<table class=table-header-rotated>
        <thead>
          <tr>
        
            <th></th>";
     
     
    				$cpt=0;
    				$conn;
    				$tmp2=16;
    				$table= array();
    				$stid5 = oci_parse($conn, "SELECT BODY_NAME_EN, BODY_ACRONYM, BODY_ID FROM BODY WHERE BODY_ID in (select role_body_id_fk from role where role_member_id_fk in (select member_id from member where MEMBER_NATION_COUNTRY_ID_FK=".$tmp2." AND BODY_BODYTYPE_CODE_FK='DE' OR BODY_BODYTYPE_CODE_FK='AP' )) order by body_name_en");
    				oci_execute($stid5);
    				$countBody = oci_fetch_all($stid5, $res, 0, -1, OCI_FETCHSTATEMENT_BY_ROW);
    			$j=0;
    			while ($j < $countBody){
     
    			echo"<tr class=rotate-45>";
    			 echo $res[$j]['BODY_NAME_EN'];		
    			$j++;
    			echo "<br></tr>";
    			}	
     
    echo"</tr>	
    </thead>
    <tbody>";
     
     
     
    				$stid2 = oci_parse($conn, 'SELECT COUNTRY_NAME_EN,MEMBER_LASTNAME, MEMBER_PHOTO_URL, MEMBER_FIRSTNAME, MEMBER_ID FROM MEMBER INNER JOIN COUNTRY ON MEMBER_NATION_COUNTRY_ID_FK=COUNTRY_ID WHERE MEMBER_NATION_COUNTRY_ID_FK='.$tmp2.' ORDER BY MEMBER_LASTNAME');
    				oci_execute($stid2);
    				while (($row = oci_fetch_array($stid2, OCI_BOTH)) != false) {
    				////je prend le nom prenom et id
    					$TmpNom=$row['MEMBER_LASTNAME'];
    					$TmpPrenom=$row['MEMBER_FIRSTNAME'];
    					 $memberId=$row['MEMBER_ID'];
    					 $memberPhoto=$row['MEMBER_PHOTO_URL'];
    					  $memberCountry=$row['COUNTRY_NAME_EN'];
     
    					 echo"<tr>";
    					 echo $TmpNom,' ',$TmpPrenom ;
    					 echo "</tr>";
    					 }
     
     
     
     echo "</tbody> 
    	
    </table>
    
    </page>";
    ?>
     
     
     
     
    <?php 
     
    $content=ob_get_clean();
    require('html2pdf/html2pdf.class.php');
    try{
    $pdf = new HTML2PDF('P','A4','fr');
    $pdf->writeHTML($content);
    $pdf->Output('testpdf.pdf');
    }catch (HTML2PDF_exception $e){
    die($e);
    }?>
    une petite question aussi , j ai essayé de mettre mes noms d organe dans un <th> mais quand je fais ca il ne s affiche pas dans mon pdf , est ce qu il prenne bien en compte le <th> dans html2pdf ??

    Merci beaucoup d avance pour ta reponse

  11. #11
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2013
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2013
    Messages : 94
    Points : 44
    Points
    44
    Par défaut
    tu n'as pas de reponse a ma question ?

  12. #12
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    Même façcon d'aller au diagnostique: commente les ligne qui génèrent ton pdf, et regarde l'HTML produit, s'il n'y a pas un problème...

    EDIT: pour les <th> j'en sais rien, tu peux toujours modifier des tr avec des css, je suppose.
    My daughter, my laptop, my bike and my double-sticks...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] bug de mon code pour afficher des donnes BDD a partir de l'id transmise
    Par gael-abdelhadi dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 20/03/2011, 12h56
  2. probleme pour afficher des ronds à l'endroit cliqué sur une grille
    Par gnouz dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 29/12/2009, 01h42
  3. un probleme pour afficher des images AS3
    Par Flashouilleur dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 19/01/2009, 18h28
  4. [MySQL] rejoindre deux requêtes pour afficher des données
    Par schats dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 26/12/2007, 14h19
  5. Probleme pour afficher des printf dans le main
    Par Battosaiii dans le forum C
    Réponses: 4
    Dernier message: 13/03/2006, 10h58

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