簡體   English   中英

按級別分組行,並為每個行放置名稱

[英]Group rows by level and put name for each

我有這張桌子

id   ins  sec  div  subject  subjectHour  level
1     1    1    7   subName       5      level 1
2     1    2    7   subName2      4      level 1
3     1    2    7   subName3      4      level 2
4     1    1    7   subName4      6      level 2

我想把像

1級科目
SUBNAME
subName2

2級科目
subName3
subName4

mysql加入4張表

    $displayMat = $db->prepare('SELECT
     a.id, a.ins_id, a.sub_name, a.subHour, a.level,
     b.id, b.ins_name,
     c.id, sec_name,
     d.id, div_name
     FROM ins_subjects AS a
     INNER JOIN institutes AS b
     INNER JOIN ins_sections AS c
     INNER JOIN ins_division AS d
     WHERE a.ins_id=?
     GROUP BY a.id;
 ');

這是循環

$displayMat->bind_param('i', $inId);
  if ($displayMat->execute()) {
  $results = $displayMat->get_result();
  while ($m = mysqli_fetch_array($results)) {
<li>
  <div class="col-xs-3"><?php print $m['sub_name']; ?></div>
  <div class="col-xs-3"><?php print $m['ins_name']; ?></div>
  <div class="col-xs-3"><?php print $m['sec_name']; ?></div>
  <div class="col-xs-3"><?php print $m['div_name']; ?></div>
</li>
}

您的SQL需要一些連接條件,而GROUP BY似乎是多余的。

從這樣的東西開始:

SELECT a.id, a.ins_id, a.sub_name, a.subHour, a.level,
        b.id, b.ins_name,
        c.id, sec_name,
        d.id, div_name
FROM ins_subjects AS a
INNER JOIN institutes AS b ON a.ins_id = b.id
INNER JOIN ins_sections AS c ON a.sec_id = c.id
INNER JOIN ins_division AS d ON a.div_id = d.id
ORDER BY a.level, a.sub_name

您可以依次讀取每一行。 存儲級別,並在級別從上一行更改時輸出級別。

編輯

用php粗心完成,類似這樣(此處未使用列表)

<?php
$displayMat->bind_param('i', $inId);
if ($displayMat->execute()) 
{
    $results = $displayMat->get_result();
    $prev_level = '';
    while ($m = mysqli_fetch_array($results)) 
    {
        if ($prev_level != $m['level'])
        {
            echo $m['level'];
        }
        $prev_level = $m['level'];
        ?>
          <div class="col-xs-3"><?php print $m['sub_name']; ?></div>
          <div class="col-xs-3"><?php print $m['ins_name']; ?></div>
          <div class="col-xs-3"><?php print $m['sec_name']; ?></div>
          <div class="col-xs-3"><?php print $m['div_name']; ?></div>
        <?php
    }
}

暫無
暫無

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

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