2017-05-17 38 views
1

私はカスタムMySQL & PHPフォーラムで作業しています。トピックを座ったり、それぞれのカテゴリの下にリストしたりしようとしています。管理パネルでトピックを作成すると、そのカテゴリのIDに対応するカテゴリIDを設定できます。私は既にウェブ上やサイト上でかなりざっと見てきました。カスタムMySQLとPHPフォーラム - トピックをリスト下に表示

カテゴリが表示されていて、トピックがどこに行きますか?トピックは表示されず、渡されたパラメータはnullになります。各カテゴリはトピックが作成されていないことを示します。

これは私が働いている機能である:

function fetch_forum() { 
global $connection; 

$query = "SELECT * FROM forum_categories LEFT JOIN forum_topics ON forum_topics.forum_topic_category_id = forum_categories.forum_category_id"; 
$select_forum_data = mysqli_query($connection, $query); 
$new_topic = ""; 
$pre_topic = ""; 

while($row = mysqli_fetch_assoc($select_forum_data)) { 
    $forum_topic_id = $row['forum_topic_id']; 
    $forum_topic_title = $row['forum_topic_title']; 
    $forum_topic_description = $row['forum_topic_description']; 
    $forum_topic_category_id = $row['forum_topic_category_id']; 
    $forum_category_id = $row['forum_category_id']; 
    $forum_category_title = $row['forum_category_title']; 

    $new_topic = $forum_topic_title; 

    if($forum_category_title != null) { 
     echo "<thead>"; 
      echo "<tr>"; 
       echo "<th><span class='glyphicon glyphicon-file' aria-hidden='true'></span> {$forum_category_title}</th>"; 
       echo "<th>Topics</th>"; 
       echo "<th>Posts</th>"; 
       echo "<th>Last Post</th>"; 
      echo "</tr>"; 
     echo "</thead>"; 
    } 

    if($new_topic != $pre_topic) { 
     echo "<tbody>"; 
      echo "<tr>"; 
       echo "<td><a href='topic.php?t_id=<?php echo $forum_topic_id; ?>'><h5> {$forum_topic_title}</h5></a></td>"; 
       echo "<td>1</td>"; 
       echo "<td>1</td>"; 
       echo "<td>03-28-2017</td>"; 
      echo "</tr>"; 
     echo "</tbody>"; 
    } else { 
     echo "<tbody>"; 
      echo "<tr>"; 
       echo "<td>No topics have been created</td>"; 
      echo "</tr>"; 
     echo "</tbody>"; 
    } 

    $pre_topic = $forum_topic_title; 
} 
} 

これは私のインデックスページです:

<?php include "includes/header.php"; ?> 
<?php include "includes/db.php"; ?> 

    <!-- Navigation --> 
    <?php include "includes/navigation.php"; ?> 

    <!-- Page Content --> 
    <div class="container"> 
     <div class="row"> 

      <!-- Blog Entries Column --> 
      <div class="col-md-8"> 

       <!-- Forum Navigation --> 
       <?php include "includes/forum_navigation.php"; ?> 

       <!-- First Blog forum --> 
       <table class="table table-hover"> 
         <?php fetch_forum(); ?> 
       </table> 

       <hr> 

      </div> 

      <!-- Blog Sidebar Widgets Column --> 
      <?php include "includes/sidebar.php"; ?> 

     </div> 

    </div> 
    <!-- /.row --> 

    <hr> 

    <?php include "includes/footer.php"; ?> 

これは私のヘッダページです:

<?php ob_start(); ?> 
<?php session_start(); ?> 
<?php include "functions.php"; ?> 
<!DOCTYPE html> 
<html lang="en"> 

<head> 

    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 

    <title>My CMS Framework</title> 

    <!-- Bootstrap Core CSS --> 
    <link href="../css/bootstrap.min.css" rel="stylesheet"> 

    <!-- Custom CSS --> 
    <link href="../css/blog-home.css" rel="stylesheet"> 
    <link href="../css/style.css" rel="stylesheet"> 

    <!-- Custom Fonts --> 
    <link href="../admin/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"> 

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> 
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 
    <!--[if lt IE 9]> 
     <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> 
     <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> 
    <![endif]--> 

    <script type="text/javascript" src="../../js/autoBreadcrumbs.js"></script> 

</head> 

<body> 

そして、これはあります私のフォーラム:http://innovativestudios.net/forum/

+0

。 "私は作成したトピックが1つあり、トピックIDのカテゴリIDは「一般」カテゴリIDと同じですが、「一般」カテゴリの下にはリストされていません。 –

+0

どのデータ型が 'forum_topic_category_id'と' forum_category_id'ですか? – inarilo

答えて

0

FWIWあなたのコードは私のために動作し、生成します。これを使用して

Program output

は、DBの構造とデータセットを仮定しました。 DB Join

テストデータセットに問題がありますか?

+0

Kありがとうございます。私は仕事が終わったときに見てください。 –

+0

私はforum_categories、forum_topics、forum_threadsという3つのテーブルを持っています。私は時間がたつとテーブルのスクリーンショットを取得する必要があります –

+0

私は私のデータベースのテーブルを見て、私が作成したトピックがcategory_idのどれとも等しくないことを見ました。それが現れたら、それを1に更新して0に設定しました。それをテストしていただきありがとうございます。 –

0

は機能を少し変更しなければならなかったが、これは最終的な結果である:あなたがparamは作成されている「いいえトピックが生じNULLとして渡している私のフォーラムのリンクから見ることができるように

function fetch_forum() { 
    global $connection; 

    $query = "SELECT * FROM forum_categories LEFT JOIN forum_topics ON forum_topic_category_id = forum_category_id"; 
    $select_forum_data = mysqli_query($connection, $query); 
    $new_topic = ""; 
    $pre_topic = ""; 

    while($row = mysqli_fetch_assoc($select_forum_data)) { 
     $forum_topic_id = $row['forum_topic_id']; 
     $forum_topic_title = $row['forum_topic_title']; 
     $forum_topic_description = $row['forum_topic_description']; 
     $forum_topic_category_id = $row['forum_topic_category_id']; 
     $forum_category_id = $row['forum_category_id']; 
     $forum_category_title = $row['forum_category_title']; 

     $new_category = $forum_category_title; 

     if($new_category != $pre_category) { 
      echo "<thead>"; 
       echo "<tr>"; 
        echo "<th><span class='glyphicon glyphicon-file' aria-hidden='true'></span> {$forum_category_title}</th>"; 
        echo "<th>Topics</th>"; 
        echo "<th>Posts</th>"; 
        echo "<th>Last Post</th>"; 
       echo "</tr>"; 
      echo "</thead>"; 
     } 

     if($forum_topic_title != null or $forum_topic_description != null) { 
      echo "<tbody>"; 
       echo "<tr>"; 
        echo "<td><a href='topic.php?t_id=$forum_topic_id'><h4>{$forum_topic_title}</h4></a><div class='row-fluid'><h6>{$forum_topic_description}</h6></div></td>"; 
        echo "<td>1</td>"; 
        echo "<td>1</td>"; 
        echo "<td>03-28-2017</td>"; 
       echo "</tr>"; 
      echo "</tbody>"; 
     } else { 
      echo "<tbody>"; 
       echo "<tr>"; 
        echo "<td>No topics have been created yet.</td>"; 
       echo "</tr>"; 
      echo "</tbody>"; 
     } 

     $pre_category = $forum_category_title; 
    } 
} 
関連する問題