CRÉER UN FORUM EN PHP - #2 Catégories et sous-catégories

PrimFX Boris ('PrimFX') Le 24 janvier 2016

Maintenant que nous savons quelles architectures utiliser pour les fichiers et pour la base de donnée, voyons comment créer et afficher des catégories et sous-catégories :-)

  • forum.php
<?php
require('php/config.php'); /* Contient la connexion à la $bdd */
$categories = $bdd->query('SELECT * FROM f_categories ORDER BY nom');
$subcat = $bdd->prepare('SELECT * FROM f_souscategories WHERE id_categorie = ? ORDER BY nom');
require('views/forum.view.php');
?>
  • views/forum.view.php
<table class="forum">
   <tr class="header">
      <th class="main">Catégories</th>
      <th class="sub-info">Messages</th>
      <th class="sub-info">Dernier message</th>
   </tr>
   <?php
   while($c = $categories->fetch()) {
      $subcat->execute(array($c['id']));
      $souscategories = '';
      while($sc = $subcat->fetch()) { 
         $souscategories .= '<a href="">'.$sc['nom'].'</a> | ';
      }
      $souscategories = substr($souscategories, 0, -3);
   ?>
   <tr>
      <td class="main">
         <h4><a href=""><?= $c['nom'] ?></a></h4>
         <p>
         <?= $souscategories ?>
         </p>
      </td>
      <td class="sub-info">4083495</td>
      <td class="sub-info">04.12.2015 à 14h52<br />de PrimFX</td>
   </tr>
   <?php } ?>
</table>
Si vous avez des idées, questions, propositions, etc. l'espace commentaire est juste en-dessous ;-)

A propos de l'auteur

PrimFX
Boris ('PrimFX')

Je m'appelle Boris, j'ai 22 ans et je suis passionné d'informatique. Suite à mes études (Licence Informatique puis MSc Computer Science au Trinity College Dublin), je gère l'entreprise Single Quote co-fondée en 2019 et je profite de mon temps libre pour partager ma passion à travers des vidéos & articles 😃

Votre commentaire

Vous devez être connecté pour poster un commentaire. Se connecter ou Créer un compte

Commentaires 28

  • et1000 Le 15 décembre, à 08:50 | Répondre

    Car elle est très fréquente

  • et1000 Le 15 décembre, à 08:50 | Répondre

    J’avais déjà eu cette erreur

  • et1000 Le 15 décembre, à 08:49 | Répondre

    C’est cela qui fait beuger ton code

  • et1000 Le 14 décembre, à 19:34 | Répondre

    @EnderMC vous avez sans doute un problème quand vous avez rentré le nom des table, du coup il ne sais pas avec quel champ il doit utiliser fetch()

  • EnderMC Le 11 mai, à 11:40 | Répondre

    @ProBreizh tiens j'ai la même erreur

  • EnderMC Le 11 mai, à 11:39 | Répondre

    @selharem stylise toi-même

  • selharem Le 8 mai, à 02:07 | Répondre

    salut primfx c'est bien, mais on veut le fichier css de ce forum

  • idriss-pro Le 11 avril, à 16:23 | Répondre

    @PoissonPasClown salut comment vas tu

  • samifbg75 Le 30 juillet, à 18:41 | Répondre

    bonjour avez vous fait un tuto pour que les admin puisse crée des catégorie et des sous catégorie sans changer de code a chaque fois.
    merci
    sami

  • bravic Le 23 mars, à 18:51 | Répondre

    salut boris dit j'ai bizarrement ce problème "Notice: Undefined variable: categories"

    Fatal error: Call to a member function fetch() on a non-object je ne sais pas quoi faire

  • PoissonPasClown Le 20 décembre, à 21:32 | Répondre

    @primfx Salut! J'ai plein d'erreurs et je ne sais pas comment les résoudre. Si seulement le tuto avait été fait de A à Z, celà aurait été plus facile pour les viewers. Sinon je ne comprends pas comment me connecter à la bdd malgrès qu'elle existe. on ne sais pas à quoi ressemble config.php vu que tu l'a déja codé et pas nous, etc...

    un tuto de A à Z serais très apprécié.

  • devlewi Le 1 décembre, à 13:18 | Répondre

    @devlewi

  • devlewi Le 1 décembre, à 13:18 | Répondre

    KNJHKH

  • sylvette Le 10 août, à 22:05 | Répondre

    Je suis tres conten de voir votre tuto sur youtube et je le suit jusq icy,j'ador votre talon

  • fabtech Le 21 mars, à 21:22 | Répondre

    Peut tu m'envoyer le fichier config please car il peut pas ce connecter a la base de donnée Merci

  • totorina Le 18 décembre, à 09:49 | Répondre

    salut tous le monde , est ce que quelqu’un peut m'expliquer pourquoi les sous categorie ne s''affichent pas sachant que j'ai fait que du papier coller du tuto ça na pas de sens !!

  • franckeric Le 24 août, à 00:07 | Répondre

    Normal que le code ne soit pas celui du tuto ???

  • ProBreizh Le 31 juillet, à 00:26 | Répondre

    j'ai un problème à la ligne 15 ( Call to a member function fetch() on boolean in C:\wamp64\www\moi\views\forum.view.php on line 15).
    Pouvez vous m'aidez ?

  • shab Le 2 juin, à 21:48 | Répondre

    la page forum.php s'affiche correctement sans erreur mais sans les donnée de la base de donnée.......c'est quoi l'erreur ?

  • quiqou55 Le 29 mars, à 15:32 | Répondre

    @AbdiFH Le fetchAll() renvoi un tableau, si tu veut la parcourir il faut utiliser la boucle foreach($categories->fetchAll() as $c){ }

  • quiqou55 Le 29 mars, à 15:31 | Répondre

    Pour l'affichage des séparateurs( | ) tu peut faire des <ul class="pipe_separator"><li></li></ul> et les styliser en css avec les pseudo éléments :
    [code]
    .pipe_separator li{
    display: inline;
    list-style-type: none;
    }
    .pipe_separator{
    margin: 0;
    padding: 0;
    }
    .pipe_separator li:after{
    content: ' | ';
    }
    .pipe_separator li:last-child:after{
    content: '';
    }
    [/code]

  • Kalmando Le 12 février, à 16:33 | Répondre

    @AbdiFH Alors dsl je peux rien faire sans voir le code entier mais si on suit le message tu a mis une boolean dans ta fetch() et sa c'est interdit ^^

  • AbdiFH Le 12 février, à 16:19 | Répondre

    @Tcang Cela ne changes rien :/

  • Kalmando Le 12 février, à 16:15 | Répondre

    @AbdiFH Tu avais mis fetchAll() alors que c'est fetch() :
    <?php
    while($c = $categories->fetch()) {
    $subcat->execute(array($c['id']));
    $souscategories = '';
    while($sc = $subcat->fetch()) {
    $souscategories .= '<a href="">'.$sc['nom'].'</a> | ';
    }
    $souscategories = substr($souscategories, 0, -3);
    ?>

  • AbdiFH Le 11 février, à 19:47 | Répondre

    J'ai une erreur !

    Mon code :
    <?php
    while($c = $categories->fetchAll()) {
    $subcat->execute(array($c['id']));
    $souscategories = '';
    while($sc = $subcat->fetch()) {
    $souscategories .= '<a href="">'.$sc['nom'].'</a> | ';
    }
    $souscategories = substr($souscategories, 0, -3);
    ?>
    L'erreur :
    Fatal error: Uncaught Error: Call to a member function fetchAll() on boolean in C:\xampp\htdocs\abdifrh\views\forum.view.php:173 Stack trace: #0 C:\xampp\htdocs\abdifrh\forum.php(7): require() #1 {main} thrown in C:\xampp\htdocs\abdifrh\views\forum.view.php on line 173

  • Foxxen Le 26 janvier, à 21:12 | Répondre

    @primfx effectivement sa pourrai être vraiment sympa si tu pouvait nous passer juste la base du css pour le forum, mais sinon j'ai hâte au prochain épisode

  • bykertix Le 26 janvier, à 19:57 | Répondre

    @primfx peut tu donné le code du css pour le tableau ?

  • bykertix Le 26 janvier, à 19:39 | Répondre

    @primfx peut tu donné le code du css pour le tableau ?