首页 > 解决方案 > 手风琴内的一对多记录

问题描述

我正在尝试按特定字段(父)对记录进行分组,并在该父记录的手风琴内显示子记录。我第一次尝试使用GROUP BY,但只返回了一个子记录。此外,由于手风琴使用 id 编号,我必须为每个显示的手风琴增加该 id。

我将我的 SQL 更改为ORDER BYGROUP BY但现在它显然没有将它们分组。

SELECT `edition`, `rep`, `rep_name`, `serial` FROM `vouchers` as `v`
        INNER JOIN `reps` as `r` ON r.`rep_id` = v.`rep`
        WHERE `sp_id` = :sp_id ORDER BY `edition`

我设法让手风琴 ID 位工作,但不知道如何让它显示$value->edition (parent)为手风琴标题和$value->serial (child)手风琴内的记录。

<div class="m-accordion m-accordion--bordered" id="m_accordion_2" role="tablist">
  <?php 
    $i = 0;
    foreach ($data['voucher_history'] as $history=>$value):
      $i++;
  ?>
  <div class="m-accordion__item">
    <div class="m-accordion__item-head collapsed" role="tab" id="m_accordion_2_item_1_head" data-toggle="collapse" href="#m_accordion_2_item_<?php echo $i; ?>_body" aria-expanded="    false">
      <span class="m-accordion__item-icon">
        <i class="fa flaticon-user-ok"></i>
      </span>
      <span class="m-accordion__item-title">
        <?php echo sanitize($value->edition) . ' - ' . $value->rep_name; ?> 
      </span>
      <span class="m-accordion__item-mode"></span>
    </div>
    <div class="m-accordion__item-body collapse" id="m_accordion_2_item_<?php echo $i; ?>_body" class=" " role="tabpanel" aria-labelledby="m_accordion_2_item_2_head" data-parent="#m_accordion_2">
      <div class="m-accordion__item-content">
        <p>
          <?php echo sanitize($value->serial); ?>
        </p>
      </div>
    </div>
  </div>
  <?php endforeach; ?>
</div> 

标签: phpmysql

解决方案


推荐阅读