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 :

Php : Afficher un billet


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Femme Profil pro
    Demandeur d'emploi
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Demandeur d'emploi

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Php : Afficher un billet
    Bonjour à tous,

    Il s'agit de mon premier post :

    Je souhaiterais faire "une requête" et pouvoir afficher, le "billet complet" sur une nouvelle page (lorsqu'on clique sur le bouton "Détail du billet" ).
    Ma connexion à la base de donnée est bien établie depuis la page "index.php", mais pas depuis la page "detailBillet.php".

    Le code a en effet été morcelé avec Bootstrap.

    Il y a également le système de commentaires, mais ce sera dans un deuxième temps...

    Voici ma structure :
    Nom : stucture.PNG
Affichages : 180
Taille : 11,2 Ko

    Voici mon MCD :
    Nom : mcd.PNG
Affichages : 175
Taille : 54,4 Ko

    Voici mon code :
    detailBillet.php

    Ma page "d'accueil" ressemble a ceci :
    Nom : d.PNG
Affichages : 176
Taille : 11,7 Ko

    Je vous remercie d'avance pour les aides.

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    déjà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     include './config/connexion.php');
    rien que ça, y a des chances que cela ne marche pas bien.
    Ensuite, dans ta page detail, tu ne reçois aucune information concernant la sélection du billet choisi.
    du coup,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	$requete = $bdd->query('SELECT id_bil, nom, prenom, titre, contenu, DATE_FORMAT(date, \'%d/%m/%Y à %Hh%i\') AS date_creation_fr 
      	FROM billet  AS a, auteur AS b 
      	WHERE a.id_aut = b.id_aut 
      	ORDER BY date DESC AND id_bil = ?');
    il faudrait gérer dans la page précédente un input hidden par billet avec l'id de ton billet, comme ça tu pourras sélectionner un seul billet, celui choisi par l'utilisateur. Puis intégrer l'id dans ta requête de sélection.

  3. #3
    Candidat au Club
    Femme Profil pro
    Demandeur d'emploi
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Demandeur d'emploi

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Afficher un billet
    Bonjour Vil'Coyote et merci de ton retour,
    J'ai résolu l'affichage du billet, et voici le 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
     
    <?php 
     
    include(dirname(__FILE__).'/../../../config/connexion.php'); 
    include(dirname(__FILE__).'/../../../inc/header.php'); 
    ?>
     
    <body> 
      <div class="container">
        <div class="blog-header">
          <img src="/projet3/image/banner.png" alt="banner"/>        
        </div>
        <br/>
     
      <div class="row">
        <section class="col-sm-8" style="background-color:red;">
        <?php
     
     
     
     
    	$billet=array();
    	//Récupération du billet
    	$requete = $bdd->query('SELECT * FROM billet WHERE id_bil='.$_GET["id_bil"]);
     
    	//var_dump($bdd);
     
    	while ($detailbillet = $requete->fetch()):
     
     
    ?>
     
     
    <div class="blog-post">
      <h2 class="blog-post-title">
        <?php echo htmlspecialchars($detailbillet->titre); ?>
      </h2>
      <p class="blog-post-meta">
        <?php echo ($detailbillet->date);?> 
      </p>
      <p>
        <?php echo htmlspecialchars($detailbillet->contenu) ?>
      </p>
      <!-- Intégrer l'id dans le bouton -->
       <em class="pull-right"><a href="commentaire.php?billet=<?php echo $detailbillet->id_bil; ?>">Commenter ce billet</a></em>
    </div><!-- /.blog-post -->
     
     
     <?php
      endwhile; //Fin de la boucle du billet
      $requete->closeCursor();
    ?>


    Maintenant sans Framework, juste en dessous de mon billet, j'aimerais afficher les commentaires.
    1) Est-il possible de faire des commentaires imbriqués sans Framework ?
    2) Il y a effectivement une erreur dans le MCD, c'est l'id_bil qui se trouve dans ma table commentaire, et non l'id_com dans la table billet.

    Voici le 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
     
    <h3>Autres commentaires</h3>
     
    <?php
    // Récupération des commentaires
     
    $requete = $bdd->prepare('SELECT message, pseudo, DATE_FORMAT(date, \'%d/%m/%Y à %Hh%i\') AS date_commentaire_fr 
      FROM commentaire 
      WHERE id_bil = ? ORDER BY date_commentaire_fr') LIMIT(0,3);
     
      //var_dump($bdd);
      while ($commentaire = $requete->fetch()):
     
    ?>
     
    <div class="blog-com">
      <p class="blog-post-meta">
        <?php echo ($commentaire->date_creation_fr);?> par echo <? echo htmlspecialchars($commentaire->pseudo);?></a>
      </p>
      <p>
        <?php echo htmlspecialchars($commentaire->message); ?>
      </p>
      <p class="pull-right"><a href="commentaire.php">Répondre à ce message</a></p>
    </div> <!-- /.blog-com-->
     
    <?php
      endwhile; //Fin de la boucle des commentaires
      $requete->closeCursor();
    ?>

    Et voici le code de mon formulaire :

    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
     
    <?php 
     
      include(dirname(__FILE__).'/../../../config/connexion.php'); 
      include(dirname(__FILE__).'/../../../inc/header.php'); 
    ?>
     
    <body> 
      <div class="container">
        <div class="blog-header">
          <img src="/projet3/image/banner.png" alt="banner"/>        
        </div>
        <br/>
     
      <div class="row">
        <section class="col-sm-8">
     
         <h1>Commenter : </h1><hr><br />
     
    <form method="POST"  class="well"> <!--Je renvoie la page sur elle-même -->
     
      <div class="form-group">
        <label for="pseudo">Pseudo :</label>
        <input type="text" name="pseudo" class="form-control" placeholder="Votre pseudo" required>
      </div>
     
      <div class="form-group">
        <label for="email">Email :</label>
        <input type="text" name="email" class="form-control" placeholder="user@gmail.com" required>
      </div>
     
      <div class="form-group">
        <label for="message">Votre message :</label>
        <textarea name="message" rows="3" class="form-control" placeholder="Votre message ici..." required></textarea>
      </div>
     
     
      <button class="btn btn-primary" type="submit" name="id_com" value="<?=$_GET['billet'];?>"><span class="glyphicon glyphicon-ok-sign"></span> Envoyer le commentaire </button>
     
     
    </form>
     
    </section>
     
     
     
    <?php
    //On vérifie s'il y a bien un contenu dans notre commentaire
    // Et qu'elle n'est pas vide
     
    if(isset($_POST['message']) && !empty($_POST['message']))
     { 
      echo "a";
      $requete = $bdd->prepare('INSERT INTO commentaire SET (message, mail, pseudo, valid, id_bil, date) VALUES (?, ?, ?, ?, NOW()');
      $requete->execute[htmlspecialchars($_POST['message']),  htmlspecialchars($_POST['pseudo']), htmlspecialchars($_POST['pseudo']), htmlspecialchars($_POST['valid = 0']), htmlspecialchars($_POST['date'])]);
      //var_dump($bdd)
     
     
     
       while ($billet = $requete->fetch()):
       $requete->closeCursor();
      echo "b";
       // Redirection du visiteur vers la page detailBillet
        header('Location: /projet3/frontoffice/billet/detailBillet.php?id_bil='. $_POST['id_bil']);
     
      }
     
     
     include(dirname(__FILE__).'/../../../inc/sidebar.php'); ?>
     
    </div> <!-- Row -->
    </div> <!-- Container -->
     
    <?php
     
      include(dirname(__FILE__).'/../../../inc/footer.php'); 
     
    ?>
    </body>
    Et voici l'erreur affiché :
    Nom : erreur.PNG
Affichages : 146
Taille : 10,2 Ko


    Je te suis reconnaissante d'avoir pris le temps de répondre.

  4. #4
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete = $bdd->prepare('INSERT INTO commentaire SET (message, mail, pseudo, valid, id_bil, date) VALUES (?, ?, ?, ?, NOW())');
    1) Est-il possible de faire des commentaires imbriqués sans Framework ?
    un framework est une aide au developpement. il contient des fonctions, des objets, de la mise en page etc .... permettant d'aller potentiellement plus vite. donc oui sans utiliser de framewrok tu peux afficher des données. tu le fait déjà avec ton billet, il te suffit d'afficher la table de commentaire.

  5. #5
    Candidat au Club
    Femme Profil pro
    Demandeur d'emploi
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Demandeur d'emploi

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonsoir Vil'Coyote,

    Les réponses sont très rapides ICI, merci !
    Pour Les Frameworks, je ne suis pas encore à l'aise avec l'utilisation de Git.
    J'ai donc un peu avancé, je suis toujours dans l'enregistrement de mes commentaires, et voici le nouveau message d'erreur à la dernière ligne, ligne 74.
    Je ne vois pas à quoi ça correspond...

    Nom : erreur_ligne74.PNG
Affichages : 150
Taille : 10,6 Ko

    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
    <?php 
     
      include(dirname(__FILE__).'/../../../config/connexion.php'); 
      include(dirname(__FILE__).'/../../../inc/header.php'); 
    ?>
     
    <body> 
      <div class="container">
        <div class="blog-header">
          <img src="/projet3/image/banner.png" alt="banner"/>        
        </div>
        <br/>
     
      <div class="row">
        <section class="col-sm-8">
     
         <h1>Commenter : </h1><hr><br />
     
    <form method="POST"  class="well"> <!--Je renvoie la page sur elle-même -->
     
      <div class="form-group">
        <label for="pseudo">Pseudo :</label>
        <input type="text" name="pseudo" class="form-control" placeholder="Votre pseudo" required>
      </div>
     
      <div class="form-group">
        <label for="email">Email :</label>
        <input type="text" name="email" class="form-control" placeholder="user@gmail.com" required>
      </div>
     
      <div class="form-group">
        <label for="message">Votre message :</label>
        <textarea name="message" rows="3" class="form-control" placeholder="Votre message ici..." required></textarea>
      </div>
     
     
      <button class="btn btn-primary" type="submit" name="id_com" value="<?=$_GET['billet'];?>"><span class="glyphicon glyphicon-ok-sign"></span> Envoyer le commentaire </button>
     
     
    </form>
     
    </section>
     
     
     
    <?php
    //On vérifie s'il y a bien un contenu dans notre commentaire
    // Et qu'elle n'est pas vide
     
    if(isset($_POST['message']) && !empty($_POST['message']))
     { 
      echo "a";
      $requete = $bdd->prepare('INSERT INTO commentaire SET (message, mail, pseudo, valid, id_bil, "date") VALUES (?, ?, ?, ?, NOW()');
      $requete->execute(htmlspecialchars($_POST['message']),  htmlspecialchars($_POST['pseudo']), htmlspecialchars($_POST['pseudo']), htmlspecialchars($_POST['valid']), htmlspecialchars($_POST['date']));}
      //var_dump($bdd)
     
     
       while ($commentaire = $requete->fetch()):
       $requete->closeCursor();
      echo "b";
       // Redirection du visiteur vers la page detailBillet
        header('Location: /projet3/frontoffice/billet/detailBillet.php?id_bil='. $_POST['id_bil']);
     
     include(dirname(__FILE__).'/../../../inc/sidebar.php'); ?>
     
    </div> <!-- Row -->
    </div> <!-- Container -->
    </body>
     
    <?php
     
      include(dirname(__FILE__).'/../../../inc/footer.php'); 
     
    ?>
    Merci d'avance.

  6. #6
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    faut voir le contenu de ton footer.php.
    par contre si ta page est déjà incluse dans une autre les balise body sont de trop ou mal placée

  7. #7
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    salut

    pour moi ceci ne peut pas marcher.
    On ne fait pas de header() apres avoir affiché du html ou fait des écho.

    On fait par contre un étage de récupération variable d'entree, puis les traitements (récupération du billet ou redirection navigateur) et si tout va bien on "envoie la sauce" cad le html, sinon on fait un message d'erreur.

    pour ton erreur ligne 74, commente des morceaux jusqu'à de que php te dise que l'erreur vient d'ailleurs. ça sent la ' mal fermée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
       while ($commentaire = $requete->fetch()):
       $requete->closeCursor();
      echo "b";
       // Redirection du visiteur vers la page detailBillet
        header('Location: /projet3/frontoffice/billet/detailBillet.php?id_bil='. $_POST['id_bil']);
     
     include(dirname(__FILE__).'/../../../inc/sidebar.php'); ?>

  8. #8
    Candidat au Club
    Femme Profil pro
    Demandeur d'emploi
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Demandeur d'emploi

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour Vil'Coyote, gene69

    *J'ai pris en compte les remarques, et j'ai remodelé mon code.
    Désormais la page "detailBillet.php" sera composé de 3 étapes :
    1) Afficher le détail du billet
    2) Affiche les commentaires
    3) Pouvoir envoyer un commentaire depuis le formulaire, comme dans l'image qui va suivre, état actuel de ma page :

    Nom : DetailBillet.PNG
Affichages : 137
Taille : 21,5 Ko


    *J'aimerais afficher la date sous ce format, ligne 32 et 66 mais j'ai pas réussi à l'intégrer dans mes requetes ?
    DATE_FORMAT(date, \'%d/%m/%Y à %Hh%i\') AS date_creation_fr

    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
    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
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    <?php 
     
    include(dirname(__FILE__).'/../../../config/connexion.php'); 
    include(dirname(__FILE__).'/../../../inc/header.php'); 
    ?>
     
    <body> 
      <div class="container">
        <div class="blog-header">
          <img src="/projet3/image/banner.png" alt="banner"/>        
        </div>
        <br/>
     
      <div class="row">
        <section class="col-sm-8" style="background-color:red;">
        <?php
    	   $billet=array();
    	   //Récupération du billet
    	   $requete = $bdd->query('SELECT * FROM billet WHERE id_bil='.$_GET["id_bil"]);
     
    	   //var_dump($bdd);
     
    	   while ($billet = $requete->fetch()):
        ?>
     
    <!--Affichage du billet -->
    <div class="blog-post">
      <h2 class="blog-post-title">
        <?php echo htmlspecialchars($billet->titre); ?>
      </h2>
      <p class="blog-post-meta">
        <?php echo ($billet->date);?> 
      </p>
      <p>
        <?php echo htmlspecialchars($billet->contenu); ?>
      </p>
      <!-- Intégrer l'id dans le bouton -->
     
    </div><!-- /.blog-post -->
     
     
     <?php
      endwhile; //Fin de la boucle du billet
      $requete->closeCursor();
    ?>
    <br /><hr />
     
     
    <h3>Autres commentaires</h3>
     
    <?php
    // Récupération des commentaires
    // Dans la table commentaire, va me chercher toutes les commentaires dont l'id_bil = id_bil courant
      $commentaire=array();
      $id_billet = $_GET["id_bil"];
     
      $requete = $bdd->query('SELECT * FROM commentaire WHERE id_bil="'.$id_billet.'"');
     
      while ($commentaire = $requete->fetch()):
     
    ?>
     
     
    <div class="blog-com">
      <p class="blog-post-meta">
        <?php echo htmlspecialchars($commentaire->date); ?> par <?php echo htmlspecialchars($commentaire->pseudo); ?></a> 
      </p>
      <p>
        <?php echo htmlspecialchars($commentaire->message); ?>
      </p>
     
    </div> <!-- /.blog-com-->
     
    <?php
      endwhile; //Fin de la boucle des commentaires
      $requete->closeCursor();
    ?> 
     
    <br /><hr />
     
     
       <h3>Commenter ce billet : </h3><br />
     
     <div class="row">
        <section class="col-sm-8">
     
     
     
    <form action="detailBillet.php" method="POST" class="well"> <!--Je renvoie la page sur elle-même -->
     
      <div class="form-group">
        <label for="pseudo">Pseudo :</label>
        <input type="text" name="pseudo" class="form-control" placeholder="Votre pseudo" required>
      </div>
     
      <div class="form-group">
        <label for="email">Email :</label>
        <input type="text" name="email" class="form-control" placeholder="user@gmail.com" required>
      </div>
     
      <div class="form-group">
        <label for="message">Votre message :</label>
        <textarea name="message" rows="3" class="form-control" placeholder="Votre message ici..." required></textarea>
      </div>
     
     
      <button class="btn btn-primary" type="submit" name="id_com" value="<?=$_GET['billet'];?>"><span class="glyphicon glyphicon-ok-sign"></span> Envoyer le commentaire </button>
     
     
    </form>
     
    </section>
     
     
     
    <?php
    //On vérifie s'il y a bien un contenu dans notre commentaire
    // Et qu'elle n'est pas vide
     
    if(isset($_POST['message']) && !empty($_POST['message']))
     { 
      echo "a";
      $requete = $bdd->prepare('INSERT INTO commentaire SET (message, mail, pseudo, valid, id_bil, "date") VALUES (?, ?, ?, ?, NOW()');
      $requete->execute(htmlspecialchars($_POST['message']),  htmlspecialchars($_POST['mail']), htmlspecialchars($_POST['pseudo']), htmlspecialchars($_POST['valid']), htmlspecialchars($_POST['date']));
    }
      //var_dump($requete)
     
     
       while ($commentaire = $requete->fetch()):
     
      echo "b";
       // Redirection du visiteur vers la page detailBillet
        header('Location: /projet3/frontoffice/billet/detailBillet.php?id_bil='. $_POST['id_bil']);
     
     
     
      endwhile; //Fin de la boucle des commentaires
      $requete->closeCursor();
      ?>
     
     
    </section>
     
     
    <?php
     
    include(dirname(__FILE__).'/../../../inc/sidebar.php');
     
    include(dirname(__FILE__).'/../../../inc/footer.php'); 
     
     ?>
     </div>
     </div>
     </body>

    *gene69, si j'ai bien compris, vous me conseillez de mettre le formulaire à la fin de la page ?

    Que me conseillez-vous apres l'envoi du commentaire, de rester sur la même page, ou une redirection vers ma page d'accueil ?
    Il y a certainement d'autres erreurs, j'élimine du haut au bas de la page, ce qu'il me semble plus logique...
    Désolée pour le vocabulaire, je n'ai pas encore le langage technique.

    * Et voici ma table commentaire (un billet peut recevoir plusieurs commentaires) :

    Nom : table_commentaire.PNG
Affichages : 133
Taille : 62,8 Ko

    Merci pour vos réponses, très TRES rapides, c'est super !
    A bientôt.

  9. #9
    Candidat au Club
    Femme Profil pro
    Demandeur d'emploi
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Demandeur d'emploi

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Php : Afficher un billet ( RÉSOLU)
    Bonjour,

    La persévérance gagne toujours, la page "detailBillet.php s'affiche désormais correctement.
    1) Avec le detail du billet complet,
    2) L'affichage des commentaires,
    3) Et l'envoi des commentaires depuis le formulaire.
    Voici le code si ça peut aider d'autres :

    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
    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
    <?php 
     
    include(dirname(__FILE__).'/../../../config/connexion.php'); 
    include(dirname(__FILE__).'/../../../inc/header.php'); 
    ?>
     
    <body> 
      <div class="container">
        <div class="blog-header">
          <img src="/projet3/image/banner.png" alt="banner"/>        
        </div>
        <br/>
     
      <div class="row">
        <section class="col-sm-8" style="background-color:red;">
        <?php
    	   $billet=array();
    	   //Récupération du billet
    	   $requete = $bdd->query('SELECT titre, contenu, DATE_FORMAT(date, \'%d/%m/%Y à %Hh%i\') AS date_creation_fr  FROM billet WHERE id_bil='.$_GET["id_bil"]);
     
    	   //var_dump($bdd);
     
    	   while ($billet = $requete->fetch()):
        ?>
     
    <!--Affichage du billet -->
    <div class="blog-post">
      <h2 class="blog-post-title">
        <?php echo htmlspecialchars($billet->titre); ?>
      </h2>
      <p class="blog-post-meta">
        <?php echo ($billet->date_creation_fr);?> 
      </p>
      <p>
        <?php echo htmlspecialchars($billet->contenu); ?>
      </p>
      <!-- Intégrer l'id dans le bouton -->
     
    </div><!-- /.blog-post -->
     
     
     <?php
      endwhile; //Fin de la boucle du billet
      $requete->closeCursor();
    ?>
    <br /><hr />
     
     
    <h3>Autres commentaires</h3>
     
    <?php
    //On vérifie s'il y a bien un contenu dans notre commentaire
    // Et qu'elle n'est pas vide
     
    if(isset($_POST['message']) && !empty($_POST['message']))
     { 
      echo "a";
      $requete = $bdd->prepare("INSERT INTO commentaire (message, mail, pseudo, valid, id_bil) VALUES (?, ?, ?, ?, ?)");
      $requete->execute(array(htmlspecialchars($_POST['message']),  htmlspecialchars($_POST['mail']), htmlspecialchars($_POST['pseudo']), 0, $_GET["id_bil"]));
     
    echo "Vous message a bien été envoyé";
    }
      //var_dump($requete)
     // echo "b";
     
      $requete->closeCursor();
      ?>
     
    <?php
    // Récupération des commentaires
    // Dans la table commentaire, va me chercher toutes les commentaires dont l'id_bil = id_bil courant
      $id_billet = $_GET["id_bil"];
     
      $requete = $bdd->query('SELECT pseudo, message, DATE_FORMAT(date, \'%d/%m/%Y à %Hh%i\') AS date_creation_fr  FROM commentaire WHERE id_bil="'.$id_billet.'" ORDER BY date DESC');
     
      while ($commentaire = $requete->fetch()):
     
    ?>
     
     
    <div class="blog-com">
      <p class="blog-post-meta">
        <?php echo htmlspecialchars($commentaire->date_creation_fr); ?> par <?php echo htmlspecialchars($commentaire->pseudo); ?></a> 
      </p>
      <p>
        <?php echo htmlspecialchars($commentaire->message); ?>
      </p>
     
    </div> <!-- /.blog-com-->
     
    <?php
      endwhile; //Fin de la boucle des commentaires
      $requete->closeCursor();
    ?> 
     
    <br /><hr />
     
     
     
    <!-- Formulaire du commentaire -->
    <h3>Commenter ce billet : </h3><br />
     
     <div class="row">
        <section class="col-sm-8">
     
    <form method="POST" class="well"> <!--Je renvoie la page sur elle-même -->
     
      <div class="form-group">
        <label for="pseudo">Pseudo :</label>
        <input type="text" name="pseudo" class="form-control" placeholder="Votre pseudo" required>
      </div>
     
      <div class="form-group">
        <label for="mail">Email :</label>
        <input type="text" name="mail" class="form-control" placeholder="user@gmail.com" required>
      </div>
     
      <div class="form-group">
        <label for="message">Votre message :</label>
        <textarea name="message" rows="3" class="form-control" placeholder="Votre message ici..." required></textarea>
      </div>
     
      <button class="btn btn-primary" type="submit"><span class="glyphicon glyphicon-ok-sign"></span> Envoyer le commentaire </button>
     
    </form>
     
        </section>
     
    </section>
     
     
    <?php
     
    include(dirname(__FILE__).'/../../../inc/sidebar.php');
     
    include(dirname(__FILE__).'/../../../inc/footer.php'); 
     
     ?>
     </div>
     </div>
     </body>
    Ce post est résolu.
    Mais mon projet n'est pas encore terminé, puis-je continuer à la suite en cas de besoin, ou je dois ouvrir un nouveau post ?
    Merci de votre temps,
    Je vous remercie vivement surtout pour vos réponses rapides !

  10. #10
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Personnellement, je pense qu'il est préférable d'ouvrir une nouvelle discussion.

    Pierre

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

Discussions similaires

  1. [Javascript][php]afficher/cacher lignes tableau
    Par bouba83 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/12/2006, 13h55
  2. [Système] PHP : Afficher contenu fichier Excel
    Par AliochaBada dans le forum Langage
    Réponses: 1
    Dernier message: 04/12/2006, 23h53
  3. [MySQL] PHP afficher a partir d'une liste déroulante
    Par marie4449 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/11/2006, 09h00
  4. Réponses: 2
    Dernier message: 12/07/2006, 11h13
  5. Réponses: 2
    Dernier message: 09/09/2005, 10h06

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