Catégorie , sous catégorie

joris1904

joris1904 Le 14 mai 2016 à 19:01 (Édité le 25 janvier 2019 à 17:51)

bonsoir (je vous demande encore de l'aide) j’aurai  besoin d'un peut d'aide car j'obtient ce message Erreur: Aucune catégorie sélectionnée... quand je suis sur la page forum_topic.php

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

joris1904 Le 14 mai 2016 à 23:15 (Édité le 14 mai 2016 à 23:15)

du coup l'erreur est
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
joris1904

joris1904 Le 15 mai 2016 à 21:41

UP!
Cyberium

Cyberium Le 16 mai 2016 à 00:48

Tu as fait une erreur dans forum_topics.php, ligne 34; tu dois définir le FROM (c'est assez utile ^^).
Je te la corrige:
$req = "SELECT *, f_topics.id topic_base_id FROM f_topics
joris1904

joris1904 Le 16 mai 2016 à 13:09

@Cyberium sa me met plus d'erreur mais sa m"affiche aucune catégorie

http://v2.jorisvideo.fr/forum_topics.php?categorie=windows
j'ai rien du tous -_-
joris1904

joris1904 Le 16 mai 2016 à 15:25

Les catégories sont relié entre elle m'ai je n'ai pas encore les topics
Cyberium

Cyberium Le 16 mai 2016 à 16:15

@joris1904
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 ?
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte