如何将不同的论坛分组到 PHP 类别中 [英] How to group different forums into categories PHP

查看:35
本文介绍了如何将不同的论坛分组到 PHP 类别中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将我的论坛按类别分组,如下所示:

I would like to group my forums into categories, as seen here:

我目前有一个名为 forum_categories 的数据库表,它接受一个标题并为所有创建的类别创建一个 ID.我在名为 forum_forums(我想要分类的所有不同论坛)的数据库表中还有一列,它采用名为 category_apart_of 的值.

I currently have a database table called forum_categories that takes a title and creates an ID for all the categories created. I also have a column in a database table named forum_forums (all the different forums that I want to categorize) which takes a value named category_apart_of.

我将如何在正确的类别 ID 中列出论坛?

How would I go about listing the forums in their correct category ID?

非常感谢!

如果您想查看我的任何代码,或者希望我更深入地解释任何内容,请告诉我.

If you would like to see any of my code, or want me to explain anything more in-depth please tell me.

我当前列出论坛的代码(注意:获取所有论坛的 SQL 查询在上面):

My current code for listing the forums (note: an SQL query to get all the forums is above):

<thead>
    <tr>
      <th style="width: 50%;">Forum</th>   
      <th style="width: 10%;">Threads</th> 
      <th style="width: 10%;">Posts</th>
      <th style="width: 30%;">Latest Posts</th>        
    </tr>
    </thead>
    <tbody> 
    <?php 
      while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $forumID = $row['forumID'];
        $forum_title[] = $row['forum_title'];
        $forum_description[] = $row['forum_description'];
        $forum_total_threads[] = $row['forum_total_threads'];
        $forum_total_posts[] = $row['forum_total_posts'];
        $forum_latest_thread[] = $row['forum_latest_thread'];

        $stmt2 = $db->prepare("SELECT * FROM forum_threads WHERE forum_thread_belongs_to = '$forumID'");
        $stmt2->execute();
        $count = $stmt2->rowCount();

        echo '
        <tr><td><h4 style="margin-bottom: 0px;"><a style="margin-bottom: 0px;" href="forum.php?id=' 
        . $row['forumID'] . ' ">'.$row['forum_title']
        . '</a></h4><br /><h6 style="margin-bottom: 0px; margin-top: 0px;">'
        .$row['forum_description'].'</h6></td><td style="text-align: center;><span">'.$count
        .'</span></td><td style="text-align: center;><span">'.$row['forum_total_posts']
        .'</span></td><td>'.$row['forum_latest_thread'].'</td></tr>
        ';
     }
    ?>
</tbody>

两个表的 DDL:

CREATE TABLE IF NOT EXISTS `forum_forums` (
`forumID` int(11) NOT NULL AUTO_INCREMENT,
`forum_title` varchar(255) NOT NULL,
`forum_description` varchar(255) NOT NULL DEFAULT 'This forum does not have      a description',
`forum_total_threads` int(255) NOT NULL DEFAULT '0',
`forum_total_posts` int(255) NOT NULL DEFAULT '0',
`forum_latest_thread` varchar(255) NOT NULL DEFAULT 'There are no new   threads',
`forum_apart_of` int(11) NOT NULL,
`category_apart_of` int(11) NOT NULL,
 PRIMARY KEY (`forumID`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `forum_categories` (
`catID` int(11) NOT NULL AUTO_INCREMENT,
`cat_title` varchar(255) NOT NULL,
PRIMARY KEY (`catID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

推荐答案

您的问题:我将如何按照正确的类别 ID 列出论坛?

Your Question : How would I go about listing the forums in their correct category ID?

解决方案:由于您已经拥有数据库结构,并且您已经并且应该知道为了将您的 categories 表与您的 forums 表相关联,您需要在两者中至少有一列类似,它是 categories 表中的 category_id 自动递增列,即 id 因此为了将您的论坛归类到您需要的特定类别在 forums 表中将类别 id 添加到额外的列中作为 category_id,这样每个论坛都会在 id 值中提到它的类别..!

Solution : As you already have your Database Structure and as you already and should probably know in order to link your categories table with your forums table you need to have at least one column in both similar which is a category_id from your categories table auto incremented column namely as id so in order to categorize your forum into the specific category you will need to add the category id to an extra column as category_id in your forums table so each forum will have it's category mentioned in there in id value..!

然后你可以像这样按类别列出你的论坛:

And then you can list your forums by categories like this way as :

注意:此代码将检查每个论坛类别,并列出每个类别下的所有论坛..!

Note : This code will check for every forum category and it will sort of list all those forums under each category..!

<?php
//Assuming you have fetched whole data from forums table in $forums
//And whole data from categories in $categories
//So moving forward with the code

foreach ($categories  as $category) {
echo "<h1>".$category['category_title']."</h1>";
$category_id = $category['category_id'];
$query = mysqli_query($mysqli,"SELECT * FROM forums WHERE category_id='$category_id'");

$forums = array();
while ($rows = mysqli_fetch_array($query)) {
  $forums[] = $rows;
}

foreach ($forums as $forum) {
echo "Title :".$forum['forum_title']."</br>";
echo "Descripton :".$forum['forum_description']."</br></br></br>";
}
echo "</br></br></br></br>";  
} 
?>

工作代码示例:

<?php
$categories = array(
    array('id' => "04",'category_title' => "News & Support"),
    array('id' => "23",'category_title' => "Current Affairs"),
    array('id' => "12",'category_title' => "Politics"));

    $forums = array(
    array('forum_title' => "News 1",'category_id' => "04"),
    array('forum_title' => "News 2",'category_id' => "04"),
    array('forum_title' => "Current Afairs 1",'category_id' => "23"),
    array('forum_title' => "Current Afairs 2",'category_id' => "23"),
    array('forum_title' => "Politics 1",'category_id' => "12"),
    array('forum_title' => "Politics 2",'category_id' => "12")); 

foreach ($categories  as $category) {
echo "<h1>".$category['category_title']."</h1>";
$category_id = $category['id'];
$output = array();
for ($i=0;$i<=count($forums);$i++) {
if  ($category_id == $forums[$i]['category_id']) {
$add_forum = array('forum_title' => $forums[$i]['forum_title'],'category_id' => $forums[$i]['category_id']);
array_push($output, $add_forum);
}
}
for ($i=0;$i<=count($output);$i++) {
echo "Title :".$output[$i]['forum_title']."</br>";
}
echo "</br></br></br></br>";  
} 
?>

输出:

News & Support

Title :News 1
Title :News 2


Current Affairs

Title :Current Afairs 1
Title :Current Afairs 2


Politics

Title :Politics 1
Title :Politics 2

这篇关于如何将不同的论坛分组到 PHP 类别中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆