Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách nhóm các diễn đàn khác nhau thành các loại PHP

Câu hỏi của bạn: Tôi sẽ làm cách nào để liệt kê các diễn đàn theo đúng ID danh mục của chúng?

Giải pháp: Như bạn đã có Cấu trúc cơ sở dữ liệu của mình và như bạn đã và có thể nên biết để liên kết các categories của bạn bảng với forums của bạn bảng bạn cần có ít nhất một cột trong cả hai cột tương tự, đó là một category_id từ categories của bạn cột tự động tăng dần của bảng, cụ thể là id vì vậy để phân loại diễn đàn của bạn thành danh mục cụ thể, bạn sẽ cần thêm danh mục id vào một cột bổ sung dưới dạng category_id trong forums của bạn bảng để mỗi diễn đàn sẽ có danh mục được đề cập trong đó trong giá trị id ..!

Và sau đó, bạn có thể liệt kê các diễn đàn của mình theo các danh mục như sau:

Lưu ý: Mã này sẽ kiểm tra mọi danh mục diễn đàn và nó sẽ sắp xếp danh sách tất cả các diễn đàn đó theo từng danh mục ..!

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

VÍ DỤ VỀ MÃ CÔNG VIỆC:

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

ĐẦU RA:

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. Cấu trúc / Thiết kế Cơ sở dữ liệu

  2. Delphi - Các thành phần nhận biết dữ liệu tốt nhất của MySQL để sử dụng

  3. Có điều gì đó tương tự với phương thức split () trong mySql không?

  4. SQL:CẬP NHẬT từ một lựa chọn phức tạp

  5. Làm thế nào để tìm email có nhiều hơn 2 dấu chấm bằng cách sử dụng chức năng REGEXP MySQL?