Afficher la liste des topics

Afficher la liste des topics de notre forum



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



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 topics 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>
                                    <td>
                                        <!-- On met un lien pour afficher le topic en entier -->
                                        <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 🙂
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&egrave;re t'avoir r&eacute;pondu sur Youtube ! 🙂
ops
le 06 May 2018 à 15:51
```
$get_id = (int) trim(htmlentities($_GET['id']));
```
**un probl&egrave;me avec $_GET['id]**
kilianpeyron
le 27 Apr 2018 à 07:27
Merci beaucoup