J'ai une table pour stocker les catégories FAQ, puis une table pour stocker les FAQ, alors maintenant quand je dois afficher la FAQ, je parcours d'abord les catégories, puis récupère toutes les FAQ sous cette catégorie.Jointure SQL pour ce type de requête
Je veux la sortie comme,
Category 1
FAQ1, FAQ2...
Category 2
FAQ3, FAQ4
Y at-il une meilleure façon de le faire? recalculer la performance, comme en utilisant JOIN lors de l'extraction des catégories, pour récupérer les FAQ sous chaque catégorie ensemble, donc je dois exécuter seulement 1 requête.
Mon code:
<?php
if($cache->hasItem('faq_categories'))
{
$categories = $cache->getItem('faq_categories');
}
else
{
$categories = getRows(array(
'table' => 'faq_categories',
'where' => array('is_active' => 1)
));
$cache->setItem('faq_categories', $categories);
}
?>
<div class="row">
<div class="col-md-12">
<div class="globalBox">
<div class="globalBoxInside">
<h2 class="mainTitle">FAQs</h2>
<div class="row">
<div class="col-md-10 col-md-offset-1">
<?php $c = 1; foreach($categories as $cat) : ?>
<?php
$faqs = getRows(array(
'table' => 'faqs',
'where' => array('faq_category_id' => $cat['id'])
));
?>
<div class="faq_category">
<h4 class="faq_cat_title"><?php echo $cat['title']; ?> (<?php echo $cat['questions_count']; ?>)</h4>
<ul class="faqs_questions_list row">
<?php foreach($faqs as $faq) : ?>
<li class="col-md-6"><i class="fa fa-dot-circle-o"></i> <a href="<?php echo getURI('faqs'); ?>/<?php echo encryptParam('CA' . $cat['id'] . '-' .$faq['id']); ?>"><?php echo $faq['question']; ?></a></li>
<?php endforeach; ?>
</ul>
</div>
<?php endforeach; ?>
</div>
</div>
</div>
</div>
</div>
</div>
Appréciez vos réponses, Merci.
Où est votre requête que vous avez écrit pour obtenir ce fait des erreurs? Vous devriez poster votre requête s'il vous plaît. –
@Testing Il n'y a pas d'erreurs, je cherche juste un meilleur moyen, voir la question mise à jour. –