区分元素和数组的最后一个元素

时间:2015-10-28 14:55:19

标签: php html

我根据数组颜色的数量创建了表格:

$query = mysql_query("SELECT * FROM things);
$num = mysql_num_rows($query );
$colours = array ();

if($num)
{
    for ($i = 0; ($row = mysql_fetch_assoc($query)); ++$i)
    {   
        $colours[$i] = $row["colours"];
    }
}


$arrlength = count($colours);
for ($i = 0; ($i < ($arrlength)); ++$i){            
    echo "
         <tr class='border_bottom'><td>".$colours[$i]."</td></tr>
    ";
}

因此,如果颜色是等于8,则会创建8个带有border_bottom类的表行。

CSS使用border_bottom将边框添加到每个tablerow的底部。

我需要的是一些PHP帮助:我需要检查数组颜色的代码。数组的最后一个元素必须带有一个空id,因为我不希望在最后一个tablerow中添加一个border-bottom。所有其他的表必须与border_bottom类一起使用。 我正在考虑像这样启动代码:

echo"
<tr class='
";
-->PHP code goes here<--
echo"
'>
<td>".$colours[$i]."</td></tr>

3 个答案:

答案 0 :(得分:0)

在表格行echo

中尝试以下代码
echo "<tr"
    .($i < $arrlength - 1 ? " class='border_bottom'" : "")
    .">"
    ."<td>{$colours[$i]}</td></tr>";

答案 1 :(得分:0)

试试这个:

<?php
$query = mysql_query("SELECT * FROM things");
$num = mysql_num_rows($query);
$colours = array();

if($num)
{
    while($row = mysql_fetch_assoc($query))
    {   
        $colours[] = $row["colours"];
    }
}

$arrlength = count($colours);
for ($i = 0; $i < $arrlength; ++$i){ 
    if($i < $arrlength - 1){
        echo "<tr class='border_bottom'><td>{$colours[$i]}</td></tr>";
    }else{
        echo "<tr><td>{$someColor}</td></tr>";
    }         
}

答案 2 :(得分:0)

通过提前读取一行,您可以在获取行时实际执行此操作,而无需计算有多少行。

$previous_row = mysql_fetch_array();  // fetch the first row (if there is one)
while ($previous_row) {
    if ($row = mysql_fetch_array()) {
        // if another row is fetched, then the previous row was NOT the last row
        echo '<tr class="border_bottom"><td>' . $previous_row['colours'] . '</td></tr>';
    } else {
        // otherwise, the previous row WAS the last row, and does not get the class
        echo '<tr><td>' . $previous_row['colours'] . '</td></tr>';
    }
    $previous_row = $row;  // Set the previous row to the current row
}