あなたの質問: フォーラムを正しいカテゴリIDにリストするにはどうすればよいですか?
解決策: あなたはすでにデータベース構造を持っているので、そしてあなたがすでにそしておそらくあなたのcategories
をリンクするために知っているべきです forums
を含むテーブル テーブルには、両方に少なくとも1つの列が必要です。これはcategory_id
です。 categories
から テーブルの自動インクリメント列、つまりid
したがって、フォーラムを特定のカテゴリに分類するには、カテゴリid
を追加する必要があります。 category_id
として追加の列に forums
で テーブルなので、各フォーラムのID値にそのカテゴリが記載されています。.!
そして、次のようにカテゴリ別にフォーラムを一覧表示できます:
注: このコードは、すべてのフォーラムカテゴリをチェックし、各カテゴリの下にあるすべてのフォーラムを一覧表示します。.!
<?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