2010-10-31 45 views
1

如何实现下面不想显示最后结果的部分?检查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; ?> 

感谢

回答

5

也许这样吗?

<?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

我想div显示在除了最后一个记录以外的每个记录下 – Kory 2010-10-31 21:41:35

+0

这正是它所做的 - 你也可以说div除了第一个记录,它基本上是一样的 – thejh 2010-10-31 21:45:13

+0

Ahh .. gotcha,thanks。 – Kory 2010-10-31 21:48:03

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; ?> 

应该这样做

+0

这不会工作,如果另一行与最后一行具有相同的值。 – 2010-10-31 21:44:07

0

另一种方式来做到这一点:

<?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; ?> 

从技术上讲,像分隔应该用CSS来实现,使用:first-child:last-child伪类。但IE不支持:(

+0

我不明白这个代码...如何可以'++ $ count <$ count' EVER返回true? __EDIT__:啊,你可能犯了一个错误。我想你的意思是'++ $ current',而不是'++ $ count' ... – rhino 2010-10-31 21:51:31

+0

@rhino是的,那是一个错误。固定。谢谢。 – kijin 2010-10-31 22:29:52

相关问题