Afficher la liste des topics

Dans notre dossier f_forum, nous allons créer une nouvelle page sujet.php. Cette page affichera la liste des topiques créer par les utilisateurs de votre site en fonction de la catégorie dans laquelle l'utilisateur a créé son topique.


Nous allons également modifier notre fichier .htaccess afin d'appliquer l'URL souhaitée pour récupérer l'identifiant de la catégorie pour afficher la liste des topiques correspondant.


Fichier .htaccess


RewriteRule ^forum/([0-9]+)$ f_forum/sujet?id=$1


Ensuite dans notre page sujet.php nous allons afficher les sujets que nous avons créées à la main dans la table topic.


Page sujet.php


<?php
  session_start();
  include('../bd/connexionDB.php'); // Fichier PHP contenant la connexion à votre BDD
  $get_id = (int) trim(htmlentities($_GET['id'])); // On récupère l'id de la catégorie
  if(empty($get_id)){ // On vérifie qu'on a bien un id sinon on redirige vers la page forum
    header('Location: /forum');
    exit;
  }
  // On va récupérer toutes les informations des sujets, mettre les dates au format 'Le 24/04/2018 à 21h32' 
  // et ajouter les prénoms des personnes qui ont créé leur sujet
  $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_forum = ?
    ORDER BY t.date_creation DESC", 
    array($get_id));
    
  $req = $req->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>Sujet</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">Forum</h1>
        <div class="table-responsive">
          <table class="table table-striped">
            <tr>
              <th>ID</th>
              <th>Titre</th>
              <th>Date</th>
              <th>Par </th>
            </tr>
            <?php
              foreach($req as $r){  // Ici on va afficher tous nos enregistrements trouvés
              ?>  
              <tr>
                <td><?= $r['id'] ?> </td>
                <!-- On met un lien pour afficher le topic en entier -->
                <td><a href="forum/<?= $get_id?>/<?= $r['id']?>"><?= $r['titre'] ?></a></td>
                <td><?= $r['date_c'] ?></td>
                <td><?= $r['prenom'] ?></td>
              </tr>   
              <?php
              }
            ?>
            </table>                    
          </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>
Par Clouder le 26 Apr 2018
Vous pouvez télécharger les fichiers de l'article
Cette pub permet au site de vivre ...

7 commentaires

Tu veux participer ?
Alors connecte toi ou inscris toi et viens participer !
JulienRG
le 16 Feb 2019 à 10:25

@clouder, 


Des qu'un utilisateur voie ton article on pourrais rajouté +1 au nombre de vue

un peut comme sur l'affichage des topics que tu as sur ton forum 👍

Clouder
le 16 Feb 2019 à 10:17

JulienRG, 


Un système de vue ? C'est à dire ? 😀

JulienRG
le 16 Feb 2019 à 09:14

Salut clouder sa serais cool que tu nous face voir comment créer un système de vue avec une bdd S

ops
le 08 May 2018 à 19:48

Salut @Clouder oui merci du coup sa a marche merci bcp :-)

Clouder
le 06 May 2018 à 22:09

Salut ops,


J'espère t'avoir répondu sur Youtube ! 🙂

ops
le 06 May 2018 à 15:51
$get_id = (int) trim(htmlentities($_GET['id']));


Un problème avec $_GET['id]

kilianpeyron
le 27 Apr 2018 à 07:27

Merci beaucoup