Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: Personne...
Ce topic a été résolu
Auteur Sujet: forum_topics.php n'affiche pas mes topics

liolio

Messages: 20

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 Sourire !

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

Publicité

liolio

Messages: 20

Personne peux m'aider?

liolio

Messages: 20

UP

TheOldNoob

Messages: 598

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

Messages: 20

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 ? Sourire
Merci pour ton aide !

Cyberium

Messages: 36

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 Sourire 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

Messages: 20

Merci pour ton aide Clin d'oeil et grand sourire 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

Messages: 20

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

Messages: 20

UP

Ranarxhag

Messages: 51

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

if(@$id_categorie) {


liolio

Messages: 20

Merci pour ton  aide mais sa change rien.

liolio

Messages: 20

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

Cyberium

Messages: 36

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

Messages: 20

@Cyberium Oui c'est bien ça. Je confirme ! Grand sourire


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