In ben bezig met het maken van een menu pagina voor een catering bedrijf. Zij bieden 4 opties in de output wil ik per categorie slechts 5 sub categories tonen. Vooralsnog heb ik de volgende twee queries:

Categorieën

$sql = "SELECT *
          FROM menus";
						
$stmt = $this->pdo->query($sql);		
return $stmt->fetchAll();


Sub categorieen

$sql = "SELECT *
		  FROM menu_items
      ORDER BY item_id";
					
$stmt = $this->pdo->query($sql);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

$menu_items = array();
foreach ($result as $row) {
if (!isset($menu_items[$row['menu_id']])) {
    $menu_items[$row['menu_id']] = array();
}
$menu_items[$row['menu_id']][] = $row;

return $menu_items;


En in de template heb ik het volgende:

<?php foreach ($menus as $menu): ?>
	<div class="pakket os-animation" data-os-animation="fadeInUp" data-os-animation-delay="0.5s">
		<img src="/images/pakket_fotos/<?php echo $menu['menu_foto']; ?>">
        <h3><?php echo $menu['menu_naam']; ?><span><?php echo $menu['menu_prijs']; ?></span></h3>
        <ul class="items">
			<?php foreach ($menu_items[$menu['menu_id']] as $value): ?>
            <li><?php echo $value['item']; ?></li> 
            <?php endforeach; ?>
        </ul>
    </div>        
<?php endforeach; ?>


Ik kan uiteraard geen limit 5 in de tweede query gebruiken

ORDER BY item_id
   LIMIT 5


aangezien dan de gehele tabel tot 5 wordt beperkt. Hoe kan ik voor ieder meu het aantal items to 5 beperken? Bij voorbaat dank

Toevoeging op 12/09/2016 07:00:54:

Ik heb dit opgelost door in de template array_slice te gebruiken


<?php foreach(array_slice($kaart_items[$menu['menu_id']], 0, 5) as $value ): ?>

Reageren