php - выводит только одну категорию из цикла foreach

0


Я знаю, что это немного странный вопрос.
но я хотел бы знать
Если у меня есть петля foreach, вот так.
и я хотел бы отображать категории и часто задаваемые вопросы. Вопросы, связанные с этим (с помощью системы загрузочной сетки)
без циклов
и без отображения только одной записи.
Что я должен делать?
Это мой код:

            $stmt = $con->prepare("SELECT * FROM 'FAQs' ORDER BY 'ID' DESC");
            $stmt->execute();
            $rows   = $stmt->fetchAll();
            foreach ($rows as $row) {
                echo '<article class="row cat-' . $row["Category"] . '"><section class="FAQ-category col-lg-6 col-md-6 col-sm-12 col-xs-12"><h3 class="h1">' . $row["Category"] . '</h3></section><section class="FAQ-Questions col-lg-6 col-md-6 col-sm-12 col-xs-12"><div class="panel-group" id="faqAccordion-' . $row["ID"] . '"><div class="panel panel-default"><div class="panel-heading accordion-toggle question-toggle collapsed" data-toggle="collapse" data-parent="#faqAccordion-' . $row["ID"] . '" data-target="#question-' . $row["ID"] . '"><h4 class="panel-title"><a href="#faqAccordion-' . $row["ID"] . '"class="ing">' . $row["Question"] . '</a></h4><i class="fa fa-fw fa-chevron-down" aria-hidden="true"></i></div><div id="question-' . $row["ID"] . '" class="panel-collapse collapse" style="height: 0px;"><div class="panel-body"><p class="lead">' . $row["Answer"] . '</p></div></div></div></div></section></article>';
            }

Редактировать: Мне жаль, что я не понимаю
Я имею в виду, как эта фотография. Изображение 174551

Изменение: быть более прозрачным
Мой код выводит это!
Хотя я хочу, чтобы это было похоже на первый img (без повторения категории), я имею в виду, если они имеют одну и ту же категорию, не повторяйте категорию и сортируйте их, как первое изображение. Изображение 174551

Заранее спасибо !

  • 1
    пожалуйста, очистите больше
  • 1
    Пожалуйста, опишите больше о своей проблеме и вставьте свой четкий код. Итак, мы можем вам помочь.
Показать ещё 4 комментария
Теги:

1 ответ

1
Лучший ответ

Вы имеете в виду?

<div class="panel-group" id="faqAccordion">
  <?php foreach ($rows as $row) : ?>
    <article class="row cat-<?= $row['Category']; ?>">
      <section class="FAQ-category col-sm-6 col-xs-12">
        <h3><?= $row['Category']; ?></h3>
      </section>
      <section class="FAQ-Questions col-sm-6 col-xs-12">
        <div class="panel panel-default">
          <div class="panel-heading">
            <h4 class="panel-title">
              <a href="#question-<?= $row['ID']; ?>" data-toggle="collapse" data-target="#question-<?= $row['ID']; ?>">
                <?= $row['Question']; ?>
              </a>
            </h4>
          </div>
          <div id="question-<?= $row['ID']; ?>" class="panel-collapse collapse">
            <div class="panel-body">
              <p class="lead"><?= $row['Answer']; ?></p>
            </div>
          </div>
        </div>
      </section>
    </article>
  <?php endforeach; ?>
</div>

EDIT: ОК, затем группируйте массив по индексу "Категория", как описано здесь:

function groupByIndex($array, $index) {
    $result = array();
    foreach($array as $val) {
        $result[$val[$index]][] = $val;
    }
    return $result;
}

$faqsByCategory = groupByIndex($rows, 'Category');

Затем вы можете выводить свои часто задаваемые вопросы в 2 вложенных циклах следующим образом:

<?php foreach ($faqsByCategory as $category => $faqs) : ?>
<article class="row cat-<?= $category ?>">
  <section class="FAQ-category col-sm-6">
    <h3><?= $category; ?></h3>
  </section>
  <section class="FAQ-Questions col-sm-6">
    <div class="panel-group">
    <?php foreach ($faqs as $key => $faq): ?>
      <div class="panel panel-default">
        <div class="panel-heading">
          <h4 class="panel-title">
            <a href="#question-<?= $faq['ID']; ?>" data-toggle="collapse" data-target="#question-<?= $faq['ID']; ?>">
              <?= $faq['Question']; ?>
            </a>
          </h4>
        </div>
        <div id="question-<?= $faq['ID']; ?>" class="panel-collapse collapse">
          <div class="panel-body">
            <p class="lead"><?= $faq['Answer']; ?></p>
          </div>
        </div>
      </div>
    <?php endforeach; ?>
    </div>
  </section>
</article>
<?php endforeach; ?>
  • 0
    Нет, я имею в виду грид-систему, вы знаете col-lg-6 для категории и не зацикливаете категорию, повторяя часто задаваемые вопросы в другом col-lg-6
  • 0
    Я редактировал сообщение любым способом
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню