2011-03-24 51 views
0

以上是构成数据库,其中所用的LIMIT 0,10。($结果)如何添加类=“最后”到最后一行在环路

  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++; 
    } 

回答

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/>"; 
} 
+0

得到它,为什么我应该把$ NUM = 0 while循环之外。谢谢 – enjoylife 2011-03-24 05:35:02

1

为了知道你是否对你的结果集的最后一行,你要知道有多少行存在这样的结果集(如,当然,你可以有不到10行;两种可能的解决方案:

  • 使用select count()查询,用相同的where条款为您select查询,让你的数据,以找出是否您有少于10行,或超过10行。
  • 或者先将整个结果集提取到一个数组,然后才显示它 - 使用count()来知道该数组中有多少行。


另一种可能是使用mysql_num_rows()功能,让行的总数 - 这将让你知道,如果你在最后一个(引用)

检索 结果集的行数。对于像SELECTSHOW 这样的语句,此命令仅适用于返回实际结果集的 。


在任何情况下,你接下来要保留您所显示的行数的轨迹 - 要知道,如果你是最后一个。

注意:这意味着使用一些计数器变量,如你所做;除非你想将它初始化为0以外的循环
否则,每当你循环时重置为0,你永远不会知道你是哪一行!

+0

很好的答案。谢谢。 – enjoylife 2011-03-24 05:44:32

1
using another way 

使用CSS

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