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

Langage PHP Discussion :

afficher une donne avant le fetch de while


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2014
    Messages : 50
    Points : 39
    Points
    39
    Par défaut afficher une donne avant le fetch de while
    Je suis à nouveau perdu dans la structure de mon code!!!
    Ici je cherche à afficher <?php echo $auteur; ?> mais le while n' a pas encore démarré??? ligne 22
    comment faire


    Code php : 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
     <?php
    try
    {
    // On se connecte à MySQL
    $bdd = new PDO('mysql:host=XXXXXX;dbname=XXXXXX;charset=utf8', 'XXXXXX', 'XXXXXX');
    }
    catch(Exception $e)
    {
    // En cas d'erreur, on affiche un message et on arrête tout
            die('Erreur : '.$e->getMessage());
    }
    // Si tout va bien, on peut continuer
     
    // On récupère tout le contenu de BECKETT
    $reponse = $bdd->query('SELECT * FROM identification WHERE auteur=\'SAMUEL BECKETT \' ');
    $i = 0;
    $auteur = '';
    $thematique = '';
    $image = ''; ?>
     
         <div class="flag flag-ie"></div>
         <h1><?php echo $auteur; ?></h1>
    	 <i>1906-1989</i>
       </td>
      </tr>
      <tr>
        <td class="gouttiere_horizontale" colspan="4" >&nbsp;</td>
      </tr>
      <tr>
        <td class="onglet gouttiere_horizontale tablo_col1">auteur</td>
        <td class="onglet gouttiere_horizontale" id="tablo_col2">pays</td>
        <td class="onglet gouttiere_horizontale" id="tablo_col3">pièce</td>
        <td class="onglet gouttiere_horizontale tablo_col1">année</td>
      </tr>
      <tr>
        <td class="gouttiere_horizontale"></td>
        <td>&nbsp;</td>
        <td></td>
        <td></td>
      </tr>
     
     
     
    <?
    // On affiche chaque entrée une à une
    while ($donnees = $reponse->fetch())
    {
       $i++;
       $auteur = $donnees['auteur'];
       $thematique = $donnees['thematique'];
       $image = $donnees['image'];
       $nom = explode(' ',$donnees['auteur']);//va chercher le 2° champ après l'espace voir http://php.net/manual/fr/function.explode.php
    ?>
       <tr>
        <td><?php echo $nom[1]; ?></td>
        <td><?php echo $donnees['metteurenscene']; ?></td>
        <td><?php echo'<a href="#" id="'.$i.'" onclick="return false;">'. $donnees['piece']; ?></a></td>
        <td><?php echo $donnees['an']; ?></td>
       </tr>
    <?php
    }
     
    ?>
    </table>
    <div class="box-flex">
      <div><!--colonne1--> 
        <img src="img/thematique.jpg" alt="Thématique" title="thématique"> 
        <?php echo $thematique; ?>
     
     
     
      </div>
      <div><!--colonne2--> 
        <img src="img/photo.jpg" alt="Photo" title="photo">
        <?php echo'<img src="'.$image.'" alt="Samuel Beckett" title="Samuel Beckett">'; ?>

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu fais une recherche par auteur, donc logiquement tu connais l'auteur avant même d'avoir exécuté la requête, non ? (au passage, si l'auteur provient d'un formulaire, il faut penser à l'échapper ou à utiliser une requête préparée )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $auteur = 'SAMUEL BECKETT';
    // On récupère tout le contenu de BECKETT
    $stmt = $bdd->prepare('SELECT * FROM identification WHERE auteur=?');
    $reponse = $bdd->execute([$auteur]);
     ?>
     
         <div class="flag flag-ie"></div>
         <h1><?php echo $auteur; ?></h1>
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2014
    Messages : 50
    Points : 39
    Points
    39
    Par défaut
    merci pour ton aide mais je suis archi-débutant en php/mysql...j'ai du mal à comprendre
    pourquoi ligne 36 tu défini la variable $auteur alors que normalement elle doit être indiquée dans ma
    requête ligne 35
    j'ai rajouté les lignes de code pour afficher le contenu de la requête mais rien ne s'affiche
    Code php : 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
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    <!doctype html>
    <html lang="fr">
    <head>
    <meta charset="utf-8">
    <meta name="description" content="La vie et l'oeuvre de Samuel Beckett, résumé des pièces de théâtre"/>
    <link rel="stylesheet" href="style.css" />
    <title>florilège théâtre-Samuel Beckett</title>
    </head>
     
     
     
    <body>
    <img src="img/header.jpg" width="1170" height="442" id="header" alt="spectateurs" title="spectateurs" >
    <table class="alignement" id="grid" cellpadding="0">
      <tr>
        <td class="gouttiere_horizontale" colspan="2" >
    	  <?php include "menu.html" ?>
       </td>
       <td colspan="2">
     
       <?php
    try
    {
    // On se connecte à MySQL
    $bdd = new PDO('mysql:host=XXXXXX;dbname=XXXXXX;charset=utf8', 'XXXXXX', 'XXXXXX');
    }
    catch(Exception $e)
    {
    // En cas d'erreur, on affiche un message et on arrête tout
            die('Erreur : '.$e->getMessage());
    }
    // Si tout va bien, on peut continuer
     
    // On récupère tout le contenu de BECKETT
    $reponse = $bdd->query('SELECT * FROM identification WHERE auteur=\'SAMUEL BECKETT \' ');
    $auteur = 'SAMUEL BECKETT';
    // On récupère tout le contenu de BECKETT
    $stmt = $bdd->prepare('SELECT * FROM identification WHERE auteur=?');
    $reponse2 = $bdd2->execute([$auteur]);
    $i = 0;
    $auteur = '';
    $thematique = '';
    $image = ''; ?>
     
         <div class="flag flag-ie"></div>
         <h1><?php echo $auteur; ?></h1>
    	 <i>1906-1989</i>
       </td>
      </tr>
      <tr>
        <td class="gouttiere_horizontale" colspan="4" >&nbsp;</td>
      </tr>
      <tr>
        <td class="onglet gouttiere_horizontale tablo_col1">auteur</td>
        <td class="onglet gouttiere_horizontale" id="tablo_col2">pays</td>
        <td class="onglet gouttiere_horizontale" id="tablo_col3">pièce</td>
        <td class="onglet gouttiere_horizontale tablo_col1">année</td>
      </tr>
      <tr>
        <td class="gouttiere_horizontale"></td>
        <td>&nbsp;</td>
        <td></td>
        <td></td>
      </tr>
     
     
     
    <?
    // On affiche chaque entrée une à une
    while ($donnees = $reponse->fetch())
    {
       $i++;
       $auteur = $donnees['auteur'];
       $thematique = $donnees['thematique'];
       $image = $donnees['image'];
       $nom = explode(' ',$donnees['auteur']);//va chercher le 2° champ après l'espace voir http://php.net/manual/fr/function.explode.php
    ?>
       <tr>
        <td><?php echo $nom[1]; ?></td>
        <td><?php echo $donnees['metteurenscene']; ?></td>
        <td><?php echo'<a href="#" id="'.$i.'" onclick="return false;">'. $donnees['piece']; ?></a></td>
        <td><?php echo $donnees['an']; ?></td>
       </tr>
    <?php
    }
     
    ?>
    </table>
    <div class="box-flex">
      <div><!--colonne1--> 
        <img src="img/thematique.jpg" alt="Thématique" title="thématique"> 
        <?php echo $thematique; ?>
     
     
     
      </div>
      <div><!--colonne2--> 
        <img src="img/photo.jpg" alt="Photo" title="photo">
        <?php echo'<img src="'.$image.'" alt="Samuel Beckett" title="Samuel Beckett">'; ?>
      </div>
      <div><!--colonne3--> 
        <img src="img/pitch.jpg" alt="Le Pitch" title="pitch">
                 <div style="position:absolute; overflow:hidden; width:325px; height:300px;">
                  <table id="gallerie" style="position:absolute;">
              <tr>
                <td>Deux clochards Estragon et Vladimir échangent des propos sur leurs vies et leurs petites misères quotidiennes. Ils refont le monde à travers l'absence terriblement longue de Godot : une absence qui les renvoie à leur statut de SDF et chômeur ad vitam où ressort amertume et tragi-comique. Instants de vie, pleins de détresses, entre compagnons d'infortune.</td>
              </tr>
              <tr>
                <td>Winnie, une femme de 50 ans, se lance dans un interminable monologue triste et amer sur sa vie qui a perdu de son charme et manque de projets. Elle n'a plus le possibilité d'avancer et de se battre pour donner encore du sens à son existence.</td>
              </tr>
              <tr>
                <td>Deux estropiés ou handicapés parlent de la mort et évoquent un possible suicide pour quitter un monde trop absurde et trop contraignant. Alternance de mots incohérents et de mots construits, sentiments de tristesse chez Hamm et Clov. La vieillesse de Clov est un fardeau si lourd que la mort devient son souhait le plus cher.</td>
              </tr>   
               <tr>
                <td>L'histoire est centrée sur Mme Rooney qui discute à bâtons rompus en attendant le train. Au fur et à mesure le fil du temps est détérioré : mélange de l'avant et de l'après, les propos sont confus, tantôt ils parlent de la vieillesse, tantôt du quotidien. On attend un événement mais rien ne se passe !</td>
               </tr>
               <tr>
                <td>I- Deux clochards échangent des mots sur la platitude du monde, de la société et de leur vie en pleine décrépitude. Chacun essaie de réconforter l'autre sans y parvenir vraiment II- Deux personnages reconstituent le parcours, sans aucun intérêt, d'un individu comme pour une enquête.</td>
               </tr>
              <tr>
                <td>Lecture à haute voix du récit d'un homme obligé de se séparer vraisemblablement de celle qu'il aime pour ne plus souffrir. Il s'apprête donc à démarrer une nouvelle vie bon gré mal gré.</td>
              </tr>
              <tr>
                <td>La famille Krap reçoit des invités, s'en suit une conversation confuse et incompréhensible entre tous les participants. Victor est au bord du gouffre, il  échange avec un vitrier des propos autour de la platitude de la vie et son impossible contrôle.</td>
              </tr>
     
            </table>
          </div>
      </div>
    </div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    <!-- jQuery est inclus ! --> 
    <script >
     /* $('#1').click(function() {
    			  $('#gallerie').css("top","0px");
              });*/
    	$("[href='#']").click(function(e) {
        e.preventDefault(); //inhiber le lien
        $('#gallerie').css("top", +(-310 * parseInt($(this).attr('id')-1)) + 'px');
      });
        </script>
     
    </body>
    </html>

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2014
    Messages : 50
    Points : 39
    Points
    39
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // On récupère tout le contenu de BECKETT
    $reponse = $bdd->query('SELECT * FROM identification WHERE auteur=\'SAMUEL BECKETT \' ');
    $retourRequete = $reponse->fetch();
    $i = 0;
    $auteur = '';
    $thematique = '';
    $image = ''; ?>
     
         <div class="flag flag-ie"></div>
         <h1><?php echo $retourRequete['auteur']; ?></h1>
    j'ai essayé avec ce code et là ça marche.

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

    1- Tu fais n'importe quoi.... Il faut être logique.

    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
    <?php
    $auteur = 'SAMUEL BECKETT';
    ?>
     
         <div class="flag flag-ie"></div>
         <h1><?php echo $auteur; ?></h1>
    	 <i>1906-1989</i>
    ...
    <?php
    // On récupère tout le contenu de BECKETT
    $reponse = $bdd->prepare('SELECT * FROM identification WHERE auteur= :auteur '); // requête PRÉPARÉE
    $reponse->execute( array(':auteur'=> $auteur) ); // execution
     
    $i = 0;
    $thematique = '';
    $image = '';
    while(…............)
    {
    .....
    2- ça fait longtemps qu'on ne fait plus la mise en page avec des <table>.

    Par contre, oui, elles servent toujours à l'affichage de données tabulaires.

Discussions similaires

  1. Afficher une donnée sur la page web avec une fonction javascript
    Par Djaiffe dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/01/2008, 00h05
  2. Afficher une donnée dans une msgbox
    Par baggie dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/11/2007, 17h46
  3. [MySQL] Afficher une donnée en fonction de son identifiant
    Par Bibbe dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 12/11/2007, 16h27
  4. Réponses: 3
    Dernier message: 21/03/2007, 15h19
  5. swing afficher une image avant la fenetre
    Par gripin dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 25/04/2006, 23h21

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