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 :

PHP et FPDF, ajouter des variables


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Par défaut PHP et FPDF, ajouter des variables
    Bonjour à tous,

    Voila j'énonce mon problème.

    Je parcours le web depuis des heures en cherchant la solution à mon problème.

    Je souhaite, comme le sujet l'indique, inclure les variables de mon fichier veri_order.php dans mon fichier pdf.php (qui lance automatiquement FPDF.php)

    Malheureusement seul cette ligne apparait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $pdf->Cell(40,10,'hello world');
    La ligne fait apparaitre une cellule avec une bordure mais la variable est passée sous silence

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $pdf->Cell(60,10,$user, 0,1,'C');
    J'aimerais comprendre pourquoi, et comment je pourrais faire pour que cela fonctionne. (En effet, j'ai beaucoup de variables à entrer dans mon pdf)

    Je vous joins ci-après les codes

    pdf.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    require('fpdf.php');
    $pdf=new FPDF();
    $pdf->AddPage();
    $pdf->SetFont('Arial','B',16);
    $pdf->Cell(40,10,'hello world');
    $pdf->Cell(60,10,$user, 0,1,'C');
    $pdf->Output("test.pdf");
    ?>
    veri_order.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
    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
    100
    101
    102
    103
    104
    105
     
    <html>
    <head>
    <meta charset="utf-">
    <title>ULAC</title>
        <link rel="stylesheet" href="style_order.css" media="screen" type="text/css" />
        <link rel="SHORTCUT ICON" href="u.ico"/>
    </head>
     
    <body>
     
            <div id="content">
     
                <p><a href='index.php'><span>Log off</span></a></p>
                <p><a href='order.php'><span>New order</span></a></p>
                <p><a href='pdf.php'><span>Generate PDFdoc</span></a></p>
     
                <?php
     
                session_start();
     
                $datetime = date("Y-m-d H-i-s");
     
                    if (empty($_SESSION['username']))
                    {
                        header('location:index.php');
                    }
                    else
                    {
                        if(isset($_GET['deconnexion']))
                    {
                       if($_GET['deconnexion']==true)
                       { 
                          session_destroy();
                          header("location:index.php");
                       }
                    }
                    else if($_SESSION['username'] !== ""){
                        $user = $_SESSION['username'];
                        // afficher un message
                        /*echo "<br>Confirmation de commande<br><br>";*/
                    }
     
                    }  
     
     
     
                ?>
    </div>
     
    <div id="box_confirmation_commande">
     
        <div>
     
        <h3>CONFIRMATION DE COMMANDE</h3>
                        <p></p>
     
        </div>
     
     
     
     
    <?php
     
    if(isset($_POST['list_mat'])){
     
    foreach ($choix as $_POST['list_mat'])
    {
    echo "Choix utilisateur : ",$choix,"<br>";
    }
    }
     
       try
    {
        $bdd = new PDO('mysql:host=mon_serveur;dbname=nom_BDD;charset=utf8', 'nom_table', '');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
     
    echo 'Récapitulatif:<br><br>'; 
     
        $req = $bdd->prepare('INSERT INTO commande(modele, reference, commentaire, utilisateur, date) VALUES(?, ?, ?, ?, NOW())');
        $req->execute(array(
     
        $_POST['modele'],
        $_POST['reference'],
        $_POST['commentaire'],
        $user,
     
            ));
     
     
    echo $datetime.'<br>'.$_POST['modele'].'<br>'.$_POST['reference'].'<br>'.$_POST['commentaire'].'<br>'.'Commande effectuée par '.$user.'<br><br>'.'Merci pour votre commande!';
     
     
     
    ?>
     
            </div>
     
     
    </body>
    </html>
    D'avance je vous remercie pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                <p><a href='pdf.php'><span>Generate PDFdoc</span></a></p>
    $user n'est pas transmis au fichier pdf.php.

    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo 'Récapitulatif:<br><br>'; 
     
        $req = $bdd->prepare('INSERT INTO commande(modele, reference, commentaire, utilisateur, date) VALUES(?, ?, ?, ?, NOW())');
    Tu fais l'INSERT au moment du "récapitulatif" ??

    Qui plus est, bien APRES l'affichage des liens...


    Revois la LOGIQUE de ton code.

  3. #3
    Membre averti
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Par défaut
    Salut Jreaux62,

    Merci pour ces remarques, mais comme tu peux en conclure suite à la lecture de mon code, je suis un novice ne la matière.

    Pourrais tu m'éclairer d'avantage?

    Merci d'avance

  4. #4
    Invité
    Invité(e)
    Par défaut
    De quoi veux-tu générer le PDF ?
    De la Commande, je suppose.

    1. Alors, il faut au moins faire le traitement PHP (dont la requête SQL "INSERT ...") AVANT d'afficher les liens.
      (plus généralement, on fait le traitement PHP avant tout affichage HTML)
    2. Il faut aussi récupérer l'index (id auto-incrémenté) de la ligne qui vient d'être insérée en BDD : avec lastInsertId().
    3. Puis, dans le lien <a>, transmettre en variable cet id au fichier pdf.php, pour lui indiquer quelle commande traiter.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
                  <p><a href='pdf.php?id_commande=<?php echo $id_commande; ?>'><span>Generate PDFdoc</span></a></p>
    4. Dans pdf.php, on récupère cet id qui permet de récupérer (via une requête SQL) les données de la ligne à traiter.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <?php $id_commande = $_GET['id_commande']; ?>
    5. Puis, via une requête SQL "SELECT.... WHERE id = ?", on récupère les données de la ligne à traiter.
    Dernière modification par Invité ; 18/08/2019 à 12h00.

  5. #5
    Membre averti
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Par défaut
    Merci pour ces réponse.

    Mais je t'avoue que cela est un peu du petit chinois pour moi.

    J'ai modifié ceci dans veri_order.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p><a href='pdf.php?id_commande=<?php echo $id_commande; ?>'><span>Generate PDFdoc</span></a></p>
    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
    echo 'Récapitulatif:<br><br>';	
     
    	$req = $bdd->prepare('INSERT INTO commande(modele, reference, commentaire, utilisateur, date) VALUES(?, ?, ?, ?, NOW())');
    	$req->execute(array(
     
    	$_POST['modele'],
    	$_POST['reference'],
    	$_POST['commentaire'],
    	$user,
     
    		));
     
    	$id_commande= $bdd->lastInsertId();
     
    echo $datetime.'<br>'.$_POST['modele'].'<br>'.$_POST['reference'].'<br>'.$_POST['commentaire'].'<br>'.'Commande effectuée par '.$user.'<br><br>'.'Merci pour votre commande!';
    Et dans pdf.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    session_start();
    require('fpdf.php'); 
    $id_commande = $_GET['id'];
    $pdf=new FPDF();
    $pdf->AddPage();
    $pdf->SetFont('Arial','B',16);
    $pdf->Cell(40,10,'hello world');
    $pdf->Cell(60,10,$_SESSION['username'], 0,1,'C');
    $pdf->Cell(60,10,$_POST['modele'], 0,1,'C');
    $pdf->Output();
    ?>
    Peux tu me dire si je suis sur la bonne voie et ce qui doit être encore être fait pour que cela fonctionne?

    Dois-je faire une connexion à ma base de donnée dans pdf.php?

    Actuellement seule est retranscrite la variable de session $_SESSION['username'].

    Encore merci pour le temps consacré.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Il manque la requête SQL "SELECT.... WHERE id = ?", pour récupèrer les données de la ligne à traiter.


    J'ai du mal à comprendre...
    Tu fais un "système de commandes", alors que tu ne connais pas les BASES du PHP ?...
    Et écrire des requêtes INSERT/UPDATE/SELECT/... fait partie du B-A-BA.

    A LIRE + FAIRE LES EXERCICES :


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

Discussions similaires

  1. [NetBeans IDE for PHP] Affichage du contenu des variables
    Par Beho Double dans le forum NetBeans
    Réponses: 0
    Dernier message: 09/12/2008, 16h40
  2. PHP 5 et déclarations des variables
    Par staive dans le forum Langage
    Réponses: 7
    Dernier message: 18/03/2008, 10h31
  3. Ajouter des variables supplémentaires pour une acp
    Par fafabzh6 dans le forum SAS STAT
    Réponses: 7
    Dernier message: 31/01/2008, 16h31
  4. [PHP-JS] comment recupérer des variables javascript dans un fichier php
    Par domino_dj dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/02/2007, 11h46
  5. Ajouter des variables au PATH
    Par Feustine dans le forum Langage
    Réponses: 5
    Dernier message: 16/08/2005, 13h59

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