ti provo a riscrivere un pezzo di programma, perchè tutto è troppo lungo.
diciamo una cosa del genere:
Codice PHP:
        <?php
        $countRighe 
0;
        foreach (
getSezioni() as $var): ?>
              <div class="sezione">
                    <strong>NOME SEZIONE</strong>
                     <?php foreach (getCategoriePerSezione($var['s_id']) as $c): ?>
                         <div class="cat">
                             <strong>NOME CATEGORIA</strong>
                             <?php
                              $countRighe
++;
                              if (
$countRighe == 3) {
                                
$countRighe 0;
                                echo 
'<div style="page-break-before: always;"></div>';
                              }
                              
?>
                         </div>
                         <?php 
                               
endforeach; 
                               
$countRighe 0;
                          
?>
              </div>
              <div style="page-break-before: always;"></div>
        <?php endforeach; ?>
quindi, cosa succede.
che se prima della fine della sezione ci sono tre righe, c'è un dopppio salto.