簡體   English   中英

如何使用 PHP 和 mysqli JOIN 兩個表並獲得以下結果?

[英]How to JOIN two tables and get the following result using PHP and mysqli?

我的班級表數據是這樣的

classes_id   classes_name
 1             Arts
 2             Commerce
 3             Science

還有我的第二張桌子(子類)

sub_classes_id   classes_id       sub_classes_name
     1               1                +2
     2               1                +3
     3               2                +2
     4               2                +3
     5               2                IMBA
     6               2                MBA
     7               3                +2
     8               3                +3
     9               3                Medical
     10              3                Engineering

如何獲得這樣的輸出:使用對應 classes_name 的復選框獲取所有子類名稱

Arts
   +2
   +3
Commerce
   +2
   +3
   IMBA
   MBA

等等...

從 SQL 的角度來看,您似乎想要一個連接:

select c.classes_name, sc.sub_classes_name
from classes c
inner join subclasses sc on sc.classes_id = c.classes_id
order by c.classes_name, sc.sub_classes_name

這為您提供了所有類/子類組合,以及相關名稱和正確排序。 然后,您可以遍歷應用程序中的結果集並根據需要顯示。

<?php
// Include the database config file 
include_once 'dbConfig.php'; 
 
$query = "select c.classes_name, sc.sub_classes_name, sc.sub_classes_id
from classes c
inner join subclasses sc on sc.classes_id = c.classes_id
group by c.classes_name, sc.sub_classes_name
order by c.classes_name, sc.sub_classes_name";
$result = $db->query($query);
if($result->num_rows > 0){ 
$categories = array();
while($row = $result->fetch_assoc()){
    if(isset($row['classes_name']) && !empty($row['classes_name'])){
        if(!isset($categories[$row['classes_name']]) || !is_array($categories[$row['classes_name']])){
            $categories[$row['classes_name']] = array();
        }

        array_push($categories[$row['classes_name']], $row);
    }       
}
    foreach($categories as $category => $items){
        echo $category .'<br/>';
    foreach($items as $item){
    echo '<div class="form-check">
                <input class="form-check-input common_selector fcourse" type="checkbox" value="'.$item['sub_classes_id'].'">
                <label class="form-check-label">'.$item['sub_classes_name'].'</label>
          </div>';
        }
    }
}
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM