2015-10-06 4 views
0

В настоящее время я работаю над созданием дискуссионного форума. Моя проблема заключается в том, что он кажется, что он присваивает каждой категории идентификатор 4, а затем отображает на форумах, которые находятся в категории 4. (Это не объясняется очень хорошо, но, надеюсь, вы понимаете) ...PHP MySQL Создание дискуссионного совета

<?php 
    /* CATEGORIES */ 
    $query = "SELECT * FROM bkg_categories"; 
     try { 
      $stmt = $db->prepare($query); 
      $result = $stmt->execute(); 
     } catch(PDOException $e) { 
      $error[] = "An error has occured. Please try again later."; 
     } 
     $categories = $stmt->fetchAll(); 

     /* FORUMS */ 
     foreach($categories as $category) { 
      $catid = $category['category_id']; 

      $query = "SELECT * FROM bkg_forums WHERE category_id = :catid"; 
      $query_params = array(':catid' => $catid); 

      try { 
       $stmt = $db->prepare($query); 
       $result = $stmt->execute($query_params); 
      } catch(PDOException $e) { 
        $error[] = "An error has occured. Please try again later."; 
      } 
      $forums = $stmt->fetchAll(); 

      foreach($forums as $forum) { 

       print $forum['forum_id']; 

      } 

     } 

     ?> 

и html, чтобы отобразить все это на странице.

<?php foreach($categories as $category): ?> 
      <div><?php echo $category['category_name']; ?><?php echo $category['category_id']; ?></div> 
      <table width="100%"> 
       <tr> 
        <td colspan="2">Forum</td> 
        <td>Lastest Post</td> 
        <td>Topics</td> 
        <td>Posts</td> 
       </tr> 
       <?php foreach($forums as $forum): ?> 
        <tr> 
         <td width="5%"></td> 
         <td><a href="viewforum.php?f=<?php echo $forum['forum_id']; ?>"><?php echo $forum['forum_name']; ?></a></td> 
         <td width="15%"> 
          <!--<?php foreach($posts as $post): ?> 
           <a href="viewtopic.php?f=<?php echo $post['forum_id']; ?>&t=<?php echo $post['topic_id']; ?>#<?php echo $post['post_id']; ?>"><?php echo substr($post['post_subject'], 0, 10); ?></a> 
          <?php endforeach; ?>--> 

         </td> 
         <td width="5%" class="text-center"></td> 
         <td width="5%" class="text-center"></td> 
        </tr> 
       <?php endforeach; ?> 
      </table> 
     <?php endforeach; ?> 

EDIT:

Я создал четыре категории

Общие Разработка Gaming Off-Topic

и 1 Форум с CATEGORY_ID 4, и 1 форум, отображается в каждой категории.

ответ

1

Вы переписываете $ forums каждый раз.

Вы могли бы сделать что-то вроде

$forums[$catid] = $stmt->fetchAll();

, а затем

foreach($forums[$category['category_id']] as $forum):

Смежные вопросы