如何将class =“last”添加到循环的最后一行

时间:2011-03-24 05:26:50

标签: php

以上是数据库的形式,它使用了LIMIT 0,10。($ result)

         while ($row = mysql_fetch_object($result)){
                   echo '<li>'.$row->title.'</li>';
          }

现在我想将class =“last”添加到10行。这是我的方式。但它无法奏效。如何纠正它或使用其他方式来获得它?

  while ($row = mysql_fetch_object($result)){
      $num=0;
      if($num==9){
                   echo '<li class="last">'.$row->title'</li>';
          }else{ echo '<li>'.$row->title.'</li>';}
       $num++;
     }

3 个答案:

答案 0 :(得分:4)

$num=0;循环之外定义while

您在$num=0;内定义while,因此++$num;根本没有任何意义。它将设置为0

嗯,逻辑是这样的。

$j = 0; /* $j is outside the loop, so it does not repeat. */    

for($i=0; $i<=10; $i++)
{   
    $k = 0;     
    /*      
    Its because the loop repeats,
    And $k is set to 0 at the above step.        
    */      
    echo "j: ".($j++)." k:".($k++)."<br/>"; 
}

答案 1 :(得分:1)

为了知道你是否在结果集的最后一行,你必须知道结果集中有多少行(当然,你可以少于10行< / strong>);两种可能的解决方案:

  • 使用select count()查询,使用与where查询相同的select子句获取数据,以查明是否少于10行,或者超过10行行。
  • 或者首先将整个结果集提取到数组中,然后,只有在显示它之后 - 使用count()来知道该数组中有多少行。


另一种可能是使用mysql_num_rows()函数来获取总行数 - 这将使您知道您是否在最后一行(引用)

  

从中检索行数   结果集。该命令仅有效   适用于SELECTSHOW等语句   返回实际结果集。


在任何情况下,您都必须跟踪您显示的行数 - 以了解您是否在最后一行。

注意:这意味着像你一样使用一些计数器变量;除了你想要在循环之外将其初始化为0
否则,每次循环时重置为0,你永远不会知道你在哪一行!

答案 2 :(得分:1)

using another way

使用css

li:last-child{
/*add properties of that class(last) here*/
}