2013-01-03 152 views
0

我有一个表编码如下面一点:PHP格式颜色表?

echo "<table class='lt show'> 
     <tr class='h'> 
     <td class='ltid' title='Position'>#</td> 
     <td class='ltn' title='Name'>Name</td>"; 

$i = 0; 

while ($i < $num){ 
    $pos = $i + 1; 

    $name = mysql_result($result, $i, "name"); 

    $bgcolor = 'bgcolor="'.$color.'"'; 

    if ($pos <= 19) $color = "#FFF"; 

    echo "<tr $bgcolor class='even'><td class='ltid'>$pos</td> 
      <td class='ltn'><a href='teams.php?id=$id'>$name</td>"; 

这将返回的各自含有不同的位置和名称20行的表。 我怎样才能使底部两行/ 20红色表示他们在表的底部?

+0

如果我没有记错的话,你似乎缺少一个右括号while循环 - 不知道这只是一个复制和粘贴错误。 – citruspi

回答

0

您可以使用mysql_num_rows()函数来从总计算行数在结果集中,然后减二来确定回路指数的颜色设置为红色:

http://php.net/manual/en/function.mysql-num-rows.php 

注意这些函数不赞成使用mysqli和PDO。不太确定这是否与你有关。

或者你可以直接做一个SQL计数:

SELECT COUNT(1) FROM Table; 

这将返回你一组数,选择是你的 - 没有被重复行的总NUMER的认识,也没办法确定要设置行颜色的点。

1

注意MySQL函数已被取消,以支持PDO。

这么说,你这是怎么做到这一点

$num= mysql_num_rows ($result); 
while ($i < $num){ 
$pos = $i + 1; 

$name = mysql_result($result, $i, "name"); 

$bgcolor = 'bgcolor="'.$color.'"'; 

if ($pos < $result-2) $color = "#FFF"; 

echo "<tr $bgcolor class='even'><td class='ltid'>$pos</td> 
     <td class='ltn'><a href='teams.php?id=$id'>$name</td>"; 
} 
+0

注意:根据HTML5规范,bgcolor不是**有效属性,并且已在HTML4中弃用。应该使用CSS类来代替。 –

+0

知道这一点。所以有边界,cellpadding和cellpacing。但它在问题中提到。 – cjds