Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak pogrupować różne fora w kategorie PHP

Twoje pytanie: Jak mam się zająć umieszczeniem forów w ich poprawnym identyfikatorze kategorii?

Rozwiązanie: Ponieważ masz już swoją strukturę bazy danych i jak już i prawdopodobnie powinieneś wiedzieć, aby połączyć categories tabela z twoimi forums w tabeli musisz mieć co najmniej jedną kolumnę w obu podobnych, która jest category_id z Twoich categories automatycznie zwiększana kolumna tabeli, mianowicie jako id więc aby zaklasyfikować swoje forum do określonej kategorii, musisz dodać kategorię id do dodatkowej kolumny jako category_id na Twoich forums tabeli, więc każde forum będzie miało swoją kategorię wymienioną w wartości id..!

A następnie możesz posortować swoje fora według kategorii w ten sposób:

Uwaga: Ten kod sprawdzi dla każdej kategorii forum i posortuje listę wszystkich tych forów w każdej kategorii...!

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

PRZYKŁAD KODU DZIAŁANIA:

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

WYJŚCIE:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. com.mysql.jdbc.MysqlDataTruncation:Obcinanie danych:Dane są za długie dla kolumny „nazwa_kolumny”

  2. Usuwanie milionów wierszy w MySQL

  3. Czy Visual Studio Express 2008 może połączyć się z MySQL?

  4. Zapytanie SQL SELECT nie działa - nie można znaleźć błędu

  5. mysql COUNT() liczba wierszy za wolno