• Как правильно сформировать запрос и вывести данные в цикле?

    vhood
    @vhood
    Не забывайте отмечать решения
    Если "в лоб":

    1. Убираем группировку, никаких подгрупп база не выдаст, будет по 1 записи на "уровень"
    - $ref_system = $pdo->prepare("SELECT * FROM `db_ref_system` GROUP BY `rs_type` ORDER BY `id` ASC");
    + $ref_system = $pdo->prepare("SELECT * FROM `db_ref_system` ORDER BY `id` ASC");


    2. Фильтруем итоговый вывод в 3 массива и выводим их
    <?php
    $all = $ref_system->fetchAll();
    $plc = array_filter($all, fn ($fields) => $fields['rs_type'] === 'plc');
    $deposit = array_filter($all, fn ($fields) => $fields['rs_type'] === 'deposit');
    $offer = array_filter($all, fn ($fields) => $fields['rs_type'] === 'offer');
    ?>
    <?php foreach ([$plc, $deposit, $offer] as $level => $data): ?>
      <div class="col-md-4 col-12 mb-lg-0 mb-4">
        <div class="fw-bold h5 mb-3">
          <?= $level + 1 ?>-й уровень
        </div>
        <?php foreach($data as $ref) : ?>
        <div class="mb-4">
          <span class="text-muted fw-semibold"><?=$ref['rs_type']?></span>
          <div>
            <div class="d-flex align-items-center pt-2">
              <div class="progress w-100">
                <div class="progress-bar bg-warning" role="progressbar" style="width: 100%;" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
              </div>
              <span class="ms-3 fw-bold text-warning"><?=$ref['rs_percent']?>%</span>
            </div>
          </div>
        </div>
        <?php endforeach; ?>
      </div>
    <?php endforeach; ?>
    Ответ написан
    5 комментариев