Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да групирате различни форуми в категории PHP

Вашият въпрос: Как да изброя форумите в техния правилен идентификатор на категория?

Решение: Тъй като вече имате вашата структура на базата данни и както вече и вероятно трябва да знаете, за да свържете вашите categories таблица с вашите forums трябва да имате поне една колона и в двете подобни, която е 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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel Eloquent Limit в релация, която има подрелация

  2. MySQL динамична централна таблица

  3. MySQL актуализира, ако стойността е по-голяма от тази текуща стойност

  4. MySQL:сравнение на целочислена стойност и низово поле с индекс

  5. MySQL заявка за връщане на редове, които съдържат празно пространство