sql >> Databasteknik >  >> RDS >> Mysql

Hur man grupperar olika forum i PHP-kategorier

Din fråga: Hur skulle jag gå tillväga för att lista forumen i deras korrekta kategori-ID?

Lösning: Som du redan har din databasstruktur och som du redan och förmodligen borde veta för att kunna länka dina categories tabell med dina forums tabell måste du ha minst en kolumn i båda liknande som är ett category_id från dina categories tabell automatisk inkrementerad kolumn nämligen som id så för att kategorisera ditt forum i den specifika kategorin måste du lägga till kategorin id till en extra kolumn som category_id i dina forums tabell så att varje forum kommer att ha sin kategori som nämns där i id-värde..!

Och sedan kan du lista dina forum efter kategorier på det här sättet som:

Obs! Den här koden kommer att kontrollera för varje forumkategori och den kommer att lista alla dessa forum under varje kategori..!

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

ARBETSKOD EXEMPEL:

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

OUTPUT:

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



  1. MySQL Event If Statement END IF Error

  2. Hur den BINÄRA operatören fungerar i MariaDB

  3. Konstiga resultat med ordning efter och gräns

  4. Hur räknar man det totala beställningspriset?