Catégorie , sous catégorie
- Accueil
- Forum
- Programmation
- PHP
- Catégorie , sous catégorie
joris1904 Le 14 mai 2016 à 19:01 (Édité le 25 janvier 2019 à 17:51)
mon code (je le test donc je sais pas si j'ai tous bon)
forum_topic.php
<?php
session_start();
require('php/config.php'); /* Connexion à la bdd */
require('php/functions.php'); /* Mes fonctions */
if(isset($_GET['categorie']) AND !empty($_GET['categorie'])) {
$get_categorie = htmlspecialchars($_GET['categorie']);
$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'])));
}
foreach($categories as $cat) {
if(in_array($get_categorie, $cat)) {
$id_categorie = intval($cat[0]);
}
}
if(@$id_categorie) {
if(isset($_GET['souscategorie']) AND !empty($_GET['souscategorie'])) {
$get_souscategorie = htmlspecialchars($_GET['souscategorie']);
$souscategories = array();
$req_souscategories = $bdd->prepare('SELECT * FROM f_souscategories WHERE id_categorie = ?');
$req_souscategories->execute(array($id_categorie));
while($c = $req_souscategories->fetch()) {
array_push($souscategories, array($c['id'],url_custom_encode($c['nom'])));
}
foreach($souscategories as $cat) {
if(in_array($get_souscategorie, $cat)) {
$id_souscategorie = intval($cat[0]);
}
}
}
$req = "SELECT * FROM f_topics
LEFT JOIN f_topics_categorie ON f_topics.id = f_topics_categories.id_topic
LEFT JOIN f_categories ON f_topics_categories.id_categorie = f_categories.id
LEFT JOIN f_souscategories ON f_topics_categories.id_souscategorie = f_souscategories.id
LEFT JOIN membres ON f_topics.id_createur = membres.id
WHERE f_categories.id = ?";
if(@$id_souscategorie) {
$req .= " AND f_souscategories.id = ?";
$exec_array = array($id_categorie,$id_souscategorie);
} else {
$exec_array = array($id_categorie);
}
$req .= " ORDER BY f_topics.id DESC";
$topics = $bdd->prepare($req);
$topics->execute($exec_array);
} else {
die('Erreur: Catégorie introuvable...');
}
} else {
die('Erreur: Aucune catégorie sélectionnée...');
}
require('views/forum_topics.view.php');
?>
forum_topic.view.php
<table class="forum">
<tr class="header">
<th class="main">Sujet</th>
<th class="sub-info w10">Messages</th>
<th class="sub-info w20">Dernier message</th>
<th class="sub-info w20">Création</th>
</tr>
<?php while($t = $topics->fetch()) { ?>
<tr>
<td class="main">
<h4><a href=""><?= $t['sujet'] ?></a></h4>
</td>
<td class="sub-info">4083495</td>
<td class="sub-info">25.12.2015 à 18h07<br />de MOI</td>
<td class="sub-info"><?= $t['date_heure_creation'] ?><br />par <?= $t['pseudo'] ?></td>
</tr>
<?php } ?>
</table>
forum.php
<?php
session_start();
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
<?php
require('php/functions.php'); /* Mes fonctions */ ?>
<table class="forum">
<tr class="header">
<th class="main">Catégories</th>
<th class="sub-info messages">Messages</th>
<th class="sub-info dmessage">Dernier message</th>
</tr>
<?php
while($c = $categories->fetch()) {
$subcat->execute(array($c['id']));
$souscategories = '';
while($sc = $subcat->fetch()) {
$souscategories .= '<a href="/forum/forum_topics.php?categorie='.url_custom_encode($c['nom']).'&souscategorie='.url_custom_encode($sc['nom']).'">'.$sc['nom'].'</a> | ';
}
$souscategories = substr($souscategories, 0, -3);
?>
<tr>
<td class="main">
<h4><a href="/forum/forum_topics.php?categorie=<?= url_custom_encode($c['nom']) ?>"><?= $c['nom'] ?></a></h4>
<p>
<?= $souscategories ?>
</p>
</td>
<td class="sub-info">4083495</td>
<td class="sub-info">04.12.2015 à 14h52<br />de JorisVidéo</td>
</tr>
<?php } ?>
</table>
Merci d'avance (merci d'avoir pris le temps de lire )
joris1904 Le 14 mai 2016 à 23:15 (Édité le 14 mai 2016 à 23:15)
Fatal error: Call to a member function fetchall() on a non-object dans le fichier forum_topics.view.php
je sais toujours pas comment la réglé help please
Cyberium Le 16 mai 2016 à 00:48 (Édité le 1 janvier 1970 à 01:00)
Je te la corrige:
$req = "SELECT *, f_topics.id topic_base_id FROM f_topics
joris1904 Le 16 mai 2016 à 13:09 (Édité le 1 janvier 1970 à 01:00)
http://v2.jorisvideo.fr/forum_topics.php?categorie=windows
j'ai rien du tous -_- joris1904 Le 16 mai 2016 à 15:25 (Édité le 1 janvier 1970 à 01:00)
Cyberium Le 16 mai 2016 à 16:15 (Édité le 1 janvier 1970 à 01:00)
J'ai du mal à te suivre. "forum_topics.php" affiche les topics d'une sous-catégorie donc normal que ça n'affiche pas de catégorie. Quand je vais sur ton lien, je vois les topics donc je pense que ton problème est résolu; tu confirmes ?