[英]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.