CRÉER UN FORUM EN PHP - #4 Lister les topics


Un tuto assez long dans lequel je vous propose de voir comment afficher nos topics en les triant par catégories et sous-catégories. Comme dit dans la vidéo, je fais en sorte de ne pas avoir à passer l'id de la catégorie dans l'URL, c'est pourquoi le code est assez long pour ce qui est des vérifications (et donc de la sécurisation du site)... Après, à vous de voir comment vous souhaitez faire passer vos données entre les pages Tire la langue A noter que les URLs seront prochainement "embellies" grâce à l'URL Rewriting ;-)

  • forum_topic.php
Veuillez vous connecter pour afficher le code.
Pas encore de compte ? Créez-en un ici !
  • views/forum_topic.view.php
Veuillez vous connecter pour afficher le code.
Pas encore de compte ? Créez-en un ici !
  • views/forum.view.php (pour la petite modification de l'URL)
Veuillez vous connecter pour afficher le code.
Pas encore de compte ? Créez-en un ici !
  • php/functions.php (fonction url_custom_encode())
Veuillez vous connecter pour afficher le code.
Pas encore de compte ? Créez-en un ici !
Comme d'habitude, si vous avez des idées, propositions, ou autre, l'espace commentaire est là !

PS: Pour la fonction url_custom_encode(), vous remarquerez sans doute qu'elle possède quelques failles, notamment pour la sous-catégorie C++ (à cause des "+")... Nous verrons comment corriger ça dans un prochain épisode, et je mettrai à jour le code de la fonction ;-)

A propos de l'auteur

Boris Flesch
Boris Flesch

Salut tout le monde ! Je m'appelle Boris, j'ai 16 ans et je suis passionné d'informatique et de technologie. Je partage cette passion à travers mes vidéos que tu peux retrouver sur YouTube sous le nom de PrimFX ou bien sur ce site bien sûr (tutoriels de programmation (HTML, CSS, PHP), gameplays, vlogs high-tech...). @+

A voir aussi

13 Commentaires

POSTER UN COMMENTAIRE

Vous devez être connecté pour pouvoir poster un commentaire...

Pas encore de compte ? Créez-en un ici !



  • Photo de profil de Ayari

    Ayari

    7 Décembre 2017 à 20:59

    if(isset($_GET['categorie']) AND !empty($_GET['categorie'])) je trouve pas le variable categorie ou se trouve !!

  • Photo de profil de hjgffyfy

    hjgffyfy

    22 Juin 2017 à 07:18

    voici mon code



    <table class="forum">

    <tr class="header">

    <th class="main">Catégories</th>

    <th class="sub-info messages hide-640">Réponses</th>

    <th class="sub-info messages hide-640">Vues</th>

    <th class="sub-info dmessage">Dernière réponse</th>

    </tr>

    <?php

    while($c = $categories->fetch()) {

    $subcat->execute(array($c['id']));

    $souscategories = '';

    while($sc = $subcat->fetch()) {

    $souscategories .= '<a href="/PrimTemp/forum_topics.php?categorie='.url_custom_encode($c['nom']).'&souscategorie='.url_custom_encode($sc['nom']).'">'.$sc['nom'].'</a> | ';

    }

    $souscategories = substr($souscategories, 0, -3);

    ?>

    <tr class="categories">

    <td class="main">

    <h4><a href="/PrimTemp/forum_topics.php?categorie=<?= url_custom_encode($c['nom']) ?>"><?= $c['nom'] ?></a></h4>

    <p>

    <?= $souscategories ?>

    </p>

    </td>

    <td class="sub-info hide-640"><?= reponse_nbr_categorie($c['id']) ?></td>

    <td class="sub-info hide-640">999 999 999</td>

    <td class="sub-info"><?= derniere_reponse_categorie($c['id']) ?></td>

    </tr>

    <?php } ?>

    </table>

  • Photo de profil de hjgffyfy

    hjgffyfy

    22 Juin 2017 à 07:18



    Notice: Undefined variable: categories in C:\xampp\htdocs\killer-craft-master\forum_1\views\forum.view.php on line 9



    Fatal error: Call to a member function fetch() on null in C:\xampp\htdocs\killer-craft-master\forum_1\views\forum.view.php on line 9



    une erreur que je ne comprend pas

  • Photo de profil de sebyseb

    sebyseb

    28 Janvier 2017 à 22:10

    Réponse trouvé, il suffit d'ajouter le nom de la bdd. devant la table à ouvrir



    LEFT JOIN tuto9.membres ON f_topics.id_createur = membres.id

  • Photo de profil de sebyseb

    sebyseb

    28 Janvier 2017 à 22:00

    Salut ! Merci pour le tuto mais j'ai un problème avec mon code. Enfaite j'ai le forum sur une autre bdd que le reste du site, donc quand je tente de lier la table membres(bdd1) avec f_topics.id_createur pour faire apparaitre le pseudo du createur de topics ca ne fonctionne pas.



    Ma question est donc "comment lier deux BDD sur Mysql ?

  • Photo de profil de quiqou55

    quiqou55

    29 Mars 2016 à 19:58

    Pour les trucs qui tu pourrait faire différemment et plus simplement tu pouvais a la place de faire :



    $categories = array();

    $req_categories = $bdd->query('SELECT * FROM f_categories');

    while($c = $req_categories->fetch()) {

    array_push($categories, array($c['id'],url_custom_encode($c['nom'])));

    }



    tu pouvais faire :



    $req_categories = $bdd->query('SELECT * FROM f_categories');

    $categories= $req_categories->fetchAll(2);

  • Photo de profil de Foxxen

    Foxxen

    2 Mars 2016 à 09:33

    @Marius Hey ! Merci, je vais refaire le tuto et voir si sa marche mieux.

  • Photo de profil de M69-74

    M69-74

    1 Mars 2016 à 18:52

    @Foxxen Hello ! En fait j'avais enregistré quelque chose dans ma base de donnée avec un ''S'' en trop et il a fallu sont tout re-modifier ! J'ai ensuite resuivi le tuto ligne pour ligne et tout est bon !

    En ésperant t'avoir aidé !

  • Photo de profil de Foxxen

    Foxxen

    29 Février 2016 à 18:50

    @Marius Ok, pas de problème, c'était quoi le bug, que je puisse le régler si jamais sa me ré-arrive ??

  • Photo de profil de M69-74

    M69-74

    29 Février 2016 à 00:44

    @Foxxen Hello ! Finalement, j'ai touvé l'erreur ! Merci pour ta réponse quand même !

  • Photo de profil de Foxxen

    Foxxen

    27 Février 2016 à 09:17

    @Marius Personnellement, mon problème c'est résolu avec le tuto #6, donc essaye de prendre le codu du tuto#6 et regarde si sa marche

  • Photo de profil de M69-74

    M69-74

    27 Février 2016 à 06:23

    J'ai le même problème que @Foxxen ; pourrais-tu vérifier lez code s'il t plaît ? @PrimFx Merci par avance !

  • Photo de profil de Foxxen

    Foxxen

    16 Février 2016 à 11:02

    Salut, j'ai un problème avec le code forum_topics.php.

    Je créer un topic dans une sous catégorie et quand je vais dans celle-ci il n'y à rien, n'y dans les autres (le topic est bien créer).

    ( Et j'ai fait aussi une categorie programmation comme ton example et tous les topics, mis dans une catégorie son seulement afficher dans C++, meme si il n'y à pas de sous catégorie dans l'url )<- Enfaite on revient au premier problème. A tu une idée ?