Nous allons reprendre notre page topic.php. Sur cette page nous allons afficher les commentaires postés de vos utilisateur.


Dans notre page topic.php nous allons donc afficher les commentaires stockés dans la table topic_commentaire.


Page topic.php


<?php
  session_start();
  include('../bd/connexionDB.php');
  $get_id_forum = (int) trim(htmlentities($_GET['id_forum'])); 
  $get_id_topic = (int) trim(htmlentities($_GET['id_topic']));
  
  if(empty($get_id_forum) || empty($get_id_topic)){
    header('Location: /forum');
    exit;
  }
  
  $req = $DB->query("SELECT t.*, DATE_FORMAT(t.date_creation, 'Le %d/%m/%Y à %H\h%i') as date_c, U.prenom
    FROM topic T
    LEFT JOIN utilisateur U ON U.id = T.id_user
    WHERE t.id = ? AND t.id_forum = ?
    ORDER BY t.date_creation DESC", 
    array($get_id_topic, $get_id_forum));
  $req = $req->fetch();
  
  if(!isset($req['id'])){
    header('Location: /forum/' . $get_id_forum);
    exit;
  }
  
  // *********************************************************************
  // On vient sélectionner les informations nécessaire pour afficher les commentaires// postés sur ce topic// *********************************************************************
  $req_commentaire = $DB->query("SELECT TC.*, DATE_FORMAT(TC.date_creation, 'Le %d/%m/%Y à %H\h%i') as date_c, U.prenom, U.nom
    FROM topic_commentaire TC
    LEFT JOIN utilisateur U ON U.id = TC.id_user
    WHERE id_topic = ?
    ORDER BY date_creation DESC",
    array($get_id_topic));
  $req_commentaire = $req_commentaire->fetchAll();
?>
<!DOCTYPE html>
<html>
  <head>
    <base href="/"/>
    <meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
    <title>Topic</title>
    <link rel="stylesheet" href="../css/bootstrap.min.css"/>
    <link rel="stylesheet" href="../css/style.css"/>
  </head>
  <body>
    <?php
      require_once('../menu.php');    
    ?>
    <div class="container">
      <div class="row">   
        <div class="col-sm-0 col-md-0 col-lg-0"></div>
        <div class="col-sm-12 col-md-12 col-lg-12">
          <h1 style="text-align: center">Topic : <?= $req['titre'] ?></h1>
          <div style="background: white; box-shadow: 0 5px 15px rgba(0, 0, 0, .15); padding: 5px 10px; border-radius: 10px"><h3>Contenu</h3>
            <div style="border-top: 2px solid #eee; padding: 10px 0"><?= $req['contenu'] ?></div>
            <div style="color: #CCC; font-size: 10px; text-align: right"><?= $req['date_c'] ?>
              par 
              <?= $req['prenom'] ?></div>              
          </div>   
          <!-- On vient afficher les commentaire avec un foreach -->
            <div style="background: white; box-shadow: 0 5px 15px rgba(0, 0, 0, .15); padding: 5px 10px; border-radius: 10px; margin-top: 20px">
            <h3>Commentaires</h3><div class="table-responsive"><table class="table table-striped">
                <?phpforeach($req_commentaire as $rc){ 
                  ?>  
                    <tr><td><?= "De " . $rc['nom'] . " " . $rc['prenom'] ?></td><td><?= $rc['text'] ?></td>
                      <td><?= $rc['date_c'] ?></td></tr>   
                  <?php
                  }
                ?></table>                    
            </div>
          </div>
        </div>
      </div>
    </div>
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script><script src="../js/bootstrap.min.js"></script>
  </body>
</html>
3595 vues
Modifié le 26 septembre 2019
Publicité Sitedudev
Cette pub permet au site de vivre ...
Vidéo associée
Publicité Sitedudev
Cette pub permet au site de vivre ...
Télécharger le code source
Publicité
Cette pub permet au site de vivre ...
Voir d'autres articles
1 885 vues
Afficher les messages dans l'ordre
Dans cette vidéo on va personnaliser (un peu) l'interface des conversations avec du CSS.Nous allons également remettre les messages dans l'ordre et lors de la réception du message par le...
Créer son site de rencontres
475 vues
Utilisation de async/await
Utilisation de async/await en JavaScriptL'async/await est une syntaxe introduite dans ECMAScript 2017 pour simplifier la gestion des promesses et rendre le code asynchrone plus lisible et plus...
JS
4 328 vues
Créer un commentaire
Poster un commentaireDans notre dossier f_forum, nous allons reprendre la page topic.php. Dans cette page nous allons ajouter la possibilité à vos utilisateurs de pouvoir poster des commentaires...
Créer son site
2 247 vues
Envoyer un message sans recharger la page (2/2)
Comme nous avons mis en place notre système en JavaScript / Ajax pour envoyer un message sans recharger notre page en cours nous allons maintenant enregistrer le message + afficher ce dernier dans...
Créer son site de rencontres
698 vues
Introduction à CSS pour la mise en forme
Introduction à CSS pour la mise en formeCSS (Cascading Style Sheets) est un langage de feuilles de style utilisé pour définir la présentation visuelle des documents HTML. Il permet de contrôler...
HTML
479 vues
Positionnement statique, relatif, absolu et fixe
Positionnement Statique, Relatif, Absolu et Fixe en CSSEn CSS, le positionnement des éléments peut être contrôlé en utilisant différentes propriétés. Les quatre types de positionnement les...
CSS
585 vues
Comment ces propriétés affectent le positionnement et la mise en page des éléments
Impact des Propriétés de Marge, Bordure, Rembourrage, Largeur et Hauteur sur le Positionnement et la Mise en Page des ÉlémentsEn CSS, les propriétés de marge, bordure, rembourrage, largeur et...
CSS
1 042 vues
Sélecteurs de classe : appliquer des styles à des groupes d'éléments spécifiques
Sélecteurs de Classe : Appliquer des styles à des groupes d'éléments spécifiquesLes sélecteurs de classe sont des outils puissants en CSS qui permettent d'appliquer des styles à des groupes...
CSS
Publicité
Cette pub permet au site de vivre ...