Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So gruppieren Sie verschiedene Foren in Kategorien PHP

Ihre Frage: Wie würde ich vorgehen, um die Foren in ihrer richtigen Kategorie-ID aufzulisten?

Lösung: Da Sie bereits Ihre Datenbankstruktur haben und wie Sie bereits wissen sollten, um Ihre categories zu verknüpfen Tabelle mit Ihren forums Tabelle müssen Sie mindestens eine Spalte in beiden ähnlich haben, die eine category_id ist aus Ihren categories Tabelle automatisch inkrementierte Spalte und zwar als id Um Ihr Forum also in eine bestimmte Kategorie einzuordnen, müssen Sie die Kategorie id hinzufügen in eine zusätzliche Spalte als category_id in Ihren forums Tabelle, so dass jedes Forum seine Kategorie im ID-Wert erwähnt hat..!

Und dann können Sie Ihre Foren nach Kategorien wie folgt auflisten:

Hinweis: Dieser Code sucht nach jeder Forenkategorie und listet alle diese Foren unter jeder Kategorie auf..!

<?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>";  
} 
?>

FUNKTIONIERENDER CODE BEISPIEL:

<?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>";  
} 
?>

AUSGABE :

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