Beperk aantal sub_categories per categorie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Donald Boers

Donald Boers

11/09/2016 11:49:55
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$sql = "SELECT *
          FROM menus";
                        
$stmt = $this->pdo->query($sql);        
return $stmt->fetchAll();


Sub categorieen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php foreach(array_slice($kaart_items[$menu['menu_id']], 0, 5) as $value ): ?>
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.