таблица создает 1 строку вместо 9 строк - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть 67 категорий в моей базе данных, я называю категории, используя $categories.

Я хотел бы динамически распечатать их все в таблицу.

Что я пробовал такfar:

<table class="mdl-data-table mdl-js-data-table mdl-shadow--2dp">
<thead>
    <tr>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
    </tr>
</thead>
  <tbody>
      <tr>
        <?php
            $countCat  = round(count($categories) / 10); // 67 / 10 = 6. 7 | with round = 7
            $i = 0;
            foreach ($categories as $key => $value) { 
                ++$i;
                if ($i >= 10) {

        ?>
      <td class="mdl-data-table__cell--non-numeric">
        <label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="<?php print $value['catID']; ?>">
          <input type="checkbox" id="<?php print $value['catID']; ?>" class="mdl-checkbox__input">
          <span class="mdl-checkbox__label"><?php print $value['categoryNames']; ?></span>
        </label>
      </td>
      <?php
      }
      if ($i >= 20) { ?>

      <td class="mdl-data-table__cell--non-numeric">
        <label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="<?php print $value['catID']; ?>">
          <input type="checkbox" id="<?php print $value['catID']; ?>" class="mdl-checkbox__input">
          <span class="mdl-checkbox__label"><?php print $value['categoryNames']; ?></span>
        </label>
      </td>
      </tr>
        <?php

      }
        } 
      ?>

  </tbody>

Результат: Result

выводит только 1 строку даже при использовании $ i для остановки и создания следующегоrow?

Я бы хотел, чтобы в таблице было 9 строк, и она должна автоматически вычислять, сколько столбцов нужно сделать, если есть 67 категорий или больше.

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 23 декабря 2018

ОБНОВЛЕНИЕ 2:

Подсчитайте, сколько столбцов вам нужно с помощью $countCat = ceil(count($categories) / 9);.=> N

Добавьте </tr><tr>, чтобы пометить каждый N элементов внутри цикла, чтобы создать новую строку в таблице HTML.Вы можете архивировать это, например, по модулю N (% N) для каждого N элементов.

++$i перемещается в конец цикла для увеличения в конце.

Чтобы игнорировать создание </tr><tr> в первом цикле, вы можете использовать: && $i !== 0

<table class="mdl-data-table mdl-js-data-table mdl-shadow--2dp">
<thead>
    <tr>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
        <th></th>
    </tr>
</thead>
<tbody>
    <tr>
        <?php
        $countCat = ceil(count($categories) / 9);
        $i = 0;
        foreach ($categories as $key => $value) {

            ?>

            <?php if ($i % $countCat === 0 && $i !== 0) { ?></tr><tr><?php } ?>

            <td class="mdl-data-table__cell--non-numeric">
                <label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="<?php print $value['catID']; ?>">
                    <input type="checkbox" id="<?php print $value['catID']; ?>" class="mdl-checkbox__input">
                    <span class="mdl-checkbox__label"><?php print $value['categoryNames']; ?></span>
                </label>
            </td>


            <?php
            ++$i;
        }

        ?>
    </tr>
</tbody>

Результат:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...