Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment regrouper différents forums en catégories PHP

Votre question : Comment dois-je procéder pour répertorier les forums dans leur ID de catégorie correct ?

Solution : Comme vous avez déjà votre structure de base de données et comme vous le savez déjà et devriez probablement le savoir afin de lier vos categories tableau avec vos forums table, vous devez avoir au moins une colonne dans les deux similaires qui est un category_id de vos categories table colonne auto incrémentée à savoir comme id donc afin de catégoriser votre forum dans la catégorie spécifique, vous devrez ajouter la catégorie id à une colonne supplémentaire en tant que category_id dans vos forums table afin que chaque forum ait sa catégorie mentionnée dans la valeur de l'identifiant.. !

Et ensuite vous pouvez répertorier vos forums par catégories comme ceci :

Remarque : Ce code vérifiera chaque catégorie de forum et listera en quelque sorte tous ces forums sous chaque catégorie.. !

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

EXEMPLE DE CODE FONCTIONNEL :

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

SORTIE :

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