为2行的每个第2个结果添加一个样式,然后跳过2个结果?

时间:2014-01-23 01:53:02

标签: php mysql mysqli

这有点棘手,但是;

我要做的是添加风格'background-color:black;'仅在我的查询中得到一些结果。

所以,如果我要回应我的结果,它会显示如下;

1st result no style
2nd result black
3rd result black
4th result no style
5th result no style
7th result black
8th result black
9th result no style
10th result no style

我的查询

$getusers= $db->query("SELECT * FROM users");
    while($users= $getusers->fetch_assoc()) {

    $color = ??????????????? not sure

    echo '<div style="background-color: ' . $color . ';">';
    echo $users['username'];
    echo '</div>';
}

3 个答案:

答案 0 :(得分:0)

使用占位符变量。

按照以下示例中$i的进展情况。

$getusers= $db->query("SELECT * FROM users");

// Starting at 2 will cause "no style" to happen only once on first pass.
$i = 2; 

while($users= $getusers->fetch_assoc()) {

    // if $i is 3 or 4 value would be "black"
    $rowBg = "background-color:black";

    // Set to an empty string (no style) if $i is 1 or 2.
    if($i <= 2) {
        $rowBg = "";
    }

    $i++;

    // Start over!
    if($i > 4)
        $i = 1;

    echo '<div style="' . $rowBg . ';">';
    echo $users['username'];
    echo '</div>';
}

答案 1 :(得分:0)

这个怎么样:

$getusers= $db->query("SELECT * FROM users");
$r = 1;
while($users= $getusers->fetch_assoc()) {
    $style = ($r == 2 || $r == 3) ? 'style="background-color: black"' : ''; // black for every 2nd & 3rd row
    $r = ($r == 4) ? 1 : $r+1; // reset count to 1 when we get to 4

    echo '<div $style>';
    echo $users['username'];
    echo '</div>';
}

答案 2 :(得分:0)

$count = 1;
$getusers= $db->query("SELECT * FROM users");
while($users= $getusers->fetch_assoc()) {

$color = "#000000";
if($count == 2 || $count == 3){
echo '<div style="background-color: ' . $color . ';">';

if($count==3){
    $count=0;
}
}
else{
    echo "<div>";
}   
echo $users['username'];

echo '</div>';

$count++;

}

相关问题