Problème les sous catégories de mon forum ne s'affichent pas
- Accueil
- Forum
- Programmation
- PHP
- Problème les sous catégories de mon forum ne s'affichent pas
AlexisParder Le 11 novembre 2018 à 18:54 (Édité le 25 janvier 2019 à 17:54)
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.
Clouder Le 12 novembre 2018 à 12:02 (Édité le 1 janvier 1970 à 01:00)
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();
AlexisParder Le 12 novembre 2018 à 15:44 (Édité le 12 novembre 2018 à 15:44)
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>
AlexisParder Le 12 novembre 2018 à 15:47 (Édité le 12 novembre 2018 à 15:48)
<?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 Le 12 novembre 2018 à 16:15 (Édité le 1 janvier 1970 à 01:00)
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);
AlexisParder Le 12 novembre 2018 à 16:21 (Édité le 12 novembre 2018 à 16:21)
<?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 Le 12 novembre 2018 à 17:44 (Édité le 1 janvier 1970 à 01:00)
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 ! 😃
AlexisParder Le 12 novembre 2018 à 18:00 (Édité le 1 janvier 1970 à 01:00)