2010-10-31 8 views
1

Comment puis-je implémenter la partie ci-dessous que je ne veux pas afficher sur le dernier résultat?Vérification du dernier enregistrement en PHP

<?php foreach ($products->result() as $row): ?> 
    <h3><?= $row->header; ?></h3> 
    <p><?= $row->teaser; ?> </p> 
    <a href="">Read More</a>  
    <!-- DONT DISPLAY THIS LAST LINE IF ITS THE LAST RECORD --> 
    <div class="divider"></div> 
<?php endforeach; ?> 

Merci

Répondre

5

Peut-être comme ça?

<?php $firstline=true; foreach ($products->result() as $row): ?> 
    <?php if ($firstline) { 
     $firstline=false; 
    } else { 
     echo '<div class="divider"></div>'; 
    }?> 
    <h3><?= $row->header; ?></h3> 
    <p><?= $row->teaser; ?> </p> 
    <a href="">Read More</a> 
<?php endforeach; ?> 
+0

Je veux que le div apparaisse sous chaque enregistrement sauf le dernier – Kory

+0

C'est exactement ce qu'il fait - vous pourriez aussi dire que le div est placé sur chaque enregistrement sauf le premier. , c'est fondamentalement le même – thejh

+0

Ahh .. gotcha, merci – Kory

0
<?php foreach ($products->result() as $row): ?> 
    <h3><?= $row->header; ?></h3> 
    <p><?= $row->teaser; ?> </p> 
    <a href="">Read More</a>  

    <?php if($row!=end($products->result()) 
    <!-- DONT DISPLAY THIS LAST LINE IF ITS THE LAST RECORD --> 
    <div class="divider"></div> 
    <?php } ?> 

<?php endforeach; ?> 

devrait le faire

+0

Cela ne fonctionnera pas si une autre ligne a la même valeur que la dernière rangée. –

0

Une autre façon de le faire:

<?php $results = $products->result(); 
     $count = count($results); 
     $current = 0; 
     foreach ($results as $row): ?> 

    <h3><?= $row->header; ?></h3> 
    <p><?= $row->teaser; ?> </p> 
    <a href="">Read More</a> 

    <?php if (++$current < $count): ?> 
     <div class="divider"></div> 
    <?php endif; ?> 

<?php endforeach; ?> 

Techniquement, les choses comme séparateurs doit être fait avec CSS, en utilisant les :first-child et :last-child pseudo-classes. Mais IE ne le supporte pas :(

+0

Je ne comprends pas ce code ... comment '++ $ count <$ count' ne peut JAMAIS retourner vrai? __EDIT__: Ah, vous avez probablement fait une erreur. Je suppose que vous vouliez dire «++ $ current», pas «++ $ count» ... – rhino

+0

@rhino Ouais, c'était une erreur. Fixé. Merci. – kijin

Questions connexes