forum_topics.php n'affiche pas mes topics

Suivre ce topic
Ce topic est suivi par : Personne...
Ce topic a été résolu
liolio

liolio Le 5 mai 2016 à 15:17 (Édité le 25 janvier 2019 à 17:51)

Bonjour, forum_topics.php n'affiche pas mes topics alors qu'il sont bien dans ma base de donnée f_topics. Il m'affiche juste "Sujet Messages Dernier message Création". Pouvez- vous m'aider s'il vous plait ? Merci d'avance 😀 !

Voici mon code forum_topics.php :

  <?php
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_categories 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');
?>

liolio

liolio Le 6 mai 2016 à 10:35 (Édité le 6 mai 2016 à 16:29)

Personne peux m'aider?
liolio

liolio Le 6 mai 2016 à 16:29

UP
TheOldNoob

TheOldNoob Le 6 mai 2016 à 16:46 (Édité le 6 mai 2016 à 16:49)

Salut l'ami,
là, le seul truc que je vois pas, c'est ou tu lui demande d'afficher ton article.
Du coup, je sais pas si ça va t'aider, mais moi pour appeler mes articles, voilà le code que j'ai utiliser :

<div id="boite_news">
<?php                    
  $res = $bdd->prepare('SELECT * FROM news ORDER BY date_add DESC');
  $res->execute();

  $articles = $res->fetchAll(PDO::FETCH_ASSOC);

     foreach($articles as $art){?>
         <div class="col-md-4 portfolio-item">
         <?php    
            echo '<div id="titre_article">'.$art['title'].'</div>';
            echo '<div id="date_article">Publié le '.date('d/m/Y', strtotime($art['date_add'])).'</div>';
            echo '<div id="text_article">'.substr($art['content'], 0, 100).'...'.'<div id="read"><a href="index_read.php?id='.$art['id'].'">Lire l\'article</a></div>'.'</div>';
            echo '<div class="media-left"><div class="smal"><img src="'.$art['link'].'" alt="image"></div></div>';                  
            echo '<hr>';
        ?>
         </div>
<?php
      } // fin de foreach($articles as $art) 
?>
</div>
liolio

liolio Le 6 mai 2016 à 17:22

Ok merci pour ton aide mais ton code je ne sais pas ou le placer dans le mien. Peux tu me montré ou le placé s'il te plait ? 😀
Merci pour ton aide !
Cyberium

Cyberium Le 7 mai 2016 à 05:32 (Édité le 7 mai 2016 à 05:35)

J'ai trouvé le souci ! Tu t'es contenté de copier/coller les codes en utilisant le SQL donné au début du tutoriel; mais certaines choses ont été modifié dans le code.
Suis les tutoriel tu verras que ça fonctionnera 😀 Dans mes souvenirs, c'est juste un problème d'architecture db.

EDIT: vérifie le nom des tables et le nom des structures. PrimFX met des - puis des _ et après s'embrouiller les modifie. Met des underscore partout et non des tirets.

@TheHoldNoob : l'affichage se fait dans la view, qui est un fichier à part (/view/forum_topics.view.php)
liolio

liolio Le 7 mai 2016 à 11:15

Merci pour ton aide 😉 mais j'ai déjà fais sa. De plus j'ai regarder 2 fois sa vidéo et j'ai bien vérifier les tables sa me parais 100% pareille.
Mais merci c'est grâce au personne comme toi que l'on avance !
liolio

liolio Le 7 mai 2016 à 11:44

Mon fichier forum_topics.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 Admin</td>
      <td class="sub-info"><?= $t['date_heure_creation'] ?><br />par <?= $t['pseudo'] ?></td>
   </tr>
   <?php } ?>
</table>
@TheHoldNoob merci pour ton code je l'ai essayer mais sa marche toujours pas. Sa m'énerve parce je suis bloquer à 100%. Le mieux c'est que PrimFx passe par là mais sa m'étonnerais. De plus dans ma bdd tous me parais comme dans sa vidéo.
liolio

liolio Le 7 mai 2016 à 16:48

UP
Ranarxhag

Ranarxhag Le 8 mai 2016 à 00:51

Hmmmm... sauf erreur de ma part, ce @ ne devrait pas se trouver là, si ?

if(@$id_categorie) {

liolio

liolio Le 8 mai 2016 à 12:16

Merci pour ton  aide mais sa change rien.
liolio

liolio Le 8 mai 2016 à 12:36

Dans votre bdd "forum_architecture" esque vous avez une table qui s'appelle "forum_architecture.membres" ?
Cyberium

Cyberium Le 10 mai 2016 à 16:01

Dans ta base de données, tu dois avoir une table "membres" et non "forum_architecture.membres" (bdd.table).
Ton topic a été mis en résolu, tu confirmes ?
liolio

liolio Le 10 mai 2016 à 20:39 (Édité le 10 mai 2016 à 20:41)

@Cyberium Oui c'est bien ça. Je confirme ! 😄
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte