Я знаю, что это немного странный вопрос.
но я хотел бы знать
Если у меня есть петля 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>';
}
Редактировать: Мне жаль, что я не понимаю
Я имею в виду, как эта фотография.
Изменение: быть более прозрачным
Мой код выводит это!
Хотя я хочу, чтобы это было похоже на первый img (без повторения категории), я имею в виду, если они имеют одну и ту же категорию, не повторяйте категорию и сортируйте их, как первое изображение.
Заранее спасибо !
Вы имеете в виду?
<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; ?>