以上是数据库的形式,它使用了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++;
}
答案 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()
函数来获取总行数 - 这将使您知道您是否在最后一行(引用):
从中检索行数 结果集。该命令仅有效 适用于
SELECT
或SHOW
等语句 返回实际结果集。
在任何情况下,您都必须跟踪您显示的行数 - 以了解您是否在最后一行。
注意:这意味着像你一样使用一些计数器变量;除了你想要在循环之外将其初始化为0 !
否则,每次循环时重置为0,你永远不会知道你在哪一行!
答案 2 :(得分:1)
using another way
使用css
li:last-child{
/*add properties of that class(last) here*/
}