Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: apollon4, Jerem971
Ce topic a été résolu
Auteur Sujet: Problème les sous catégories de mon forum ne s'affichent pas

apollon4

Messages: 9

Bonsoir j'ai un problème lors de la création de mon forum les sous-catégories ne s'affichent pas voici mon code:
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');
?>


forum.view.php:
<!DOCTYPE html>
<html>
<head>
   <title>apollon4</title>
</head>
<body>
   <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>
</body>
</html>


voici le message d'erreur:
Notice: Undefined variable: categories in C:\wamp\www\test4\Forum\views\forum.view.php on line 14

Merci de votre aide et bonne journée.
Publicité

Clouder

Messages: 144

Salut,
L'erreur que tu as provient de ta variable $categories !

A aucun moment tu n'exécutes cette requête ... Il faut que tu fasses un prepare puis un execute comme ta deuxième requête avec $subcat

Ton ancienne requête : 
$categories = $bdd->query('SELECT * FROM f_categories ORDER BY nom');

Devient : 
$categories = $bdd->prepare('SELECT * FROM f_categories ORDER BY nom');
$categories = $bdd->execute();


apollon4

Messages: 9

Merci j'ai modifier le code dans le fichier forum.view.php en intégrant le code que tu ma donné mais il me met un autre message d'erreur:
Fatal error: Call to undefined method PDO::execute() in C:\wamp\www\test4\Forum\views\forum.view.php on line 15

voici le code 
<!DOCTYPE html>
<html>
<head>
   <title>apollon4</title>
</head>
<body>
   <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
      $categories = $bdd->prepare('SELECT * FROM f_categories ORDER BY nom');
      $categories = $bdd->execute();
   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>
   <footer>
   <p>© 2018 ApoWeb | apollon4 | Tous droit réservés</p>
</footer>
</body>
</html>

apollon4

Messages: 9

Je viens de remarquer que je n'est pas mis le code au bon endroit mais sa me met la même erreur mais a la ligne 4.
<?php
require('php/config.php'); /* Contient la connexion à la $bdd */
$categories = $bdd->prepare('SELECT * FROM f_categories ORDER BY nom');
$categories = $bdd->execute();
$subcat = $bdd->prepare('SELECT * FROM f_souscategories WHERE id_categorie = ? ORDER BY nom');
require('views/forum.view.php');
?>

Clouder

Messages: 144

Tu peux me remettre tes deux bout de code alors ?

Est ce que tu peux mettre ceci et me dire ce que tu obtiens comme message (c'est pour savoir si tu obtiens déjà des résultat): 
$categories = $bdd->prepare('SELECT * FROM f_categories ORDER BY nom');
$categories = $bdd->execute();
print_r($categories);

apollon4

Messages: 9

Quand je met :
<?php
require('php/config.php'); /* Contient la connexion à la $bdd */
$categories = $bdd->prepare('SELECT * FROM f_categories ORDER BY nom');
$categories = $bdd->execute();
print_r($categories);
$subcat = $bdd->prepare('SELECT * FROM f_souscategories WHERE id_categorie = ? ORDER BY nom');
require('views/forum.view.php');
?>

voici le message d'erreur:
Fatal error: Call to undefined method PDO::execute() in C:\wamp\www\test4\Forum\forum.php on line 4

et ça n'affiche rien d'autre

Clouder

Messages: 144

Je suis bête ^^ 
Je n'avais pas vu que j'ai écrit une bêtise !!

Essaie plutôt ça : 
$categories = $bdd->prepare('SELECT * FROM f_categories ORDER BY nom');
$categories->execute();
D'un seul coup ça va fonctionner ! 😃

apollon4

Messages: 9

Merci j'ai dut modifié quelque truc mais maintenant sa fonctionne


Vous devez vous connecter ou créer un compte pour poster une réponse