Php 为显示的每个MYSQL行添加不同的样式
我需要为mysql显示的每一行添加不同的样式。我显示的是最后4行,从第一行开始,样式应该称为第一、第二、第三、第四Php 为显示的每个MYSQL行添加不同的样式,php,mysql,row,Php,Mysql,Row,我需要为mysql显示的每一行添加不同的样式。我显示的是最后4行,从第一行开始,样式应该称为第一、第二、第三、第四 <?php $sql = "SELECT * FROM articles ORDER BY id DESC LIMIT 4"; $result = $con->query($sql); if ($result->num_rows > 0) { while($row = $result-
<?php
$sql = "SELECT * FROM articles ORDER BY id DESC LIMIT 4";
$result = $con->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo '
<div class="ot-slider-layer first">
<a href="articles/'.$row['slug'].'">
<strong><i style="background-color: #ed2d00; color: #fff;">'.category_name_by_id($row['category']).'</i>'.$row['title'].'</strong>
<img src="images/articles/'.$row['image'].'" alt="'.$row['title'].'" />
</a>
</div>
';
}
} else {
echo "There is no news";
}
?>
这将在这种情况下起作用:
您应该为此使用CSS。查看:n子选择器。这可以在CSS中轻松完成,无需服务器端计算。您的问题不清楚您是希望每4行交替设置样式,还是仅设置最后4行的样式。但这两种方法都可以通过CSS实现: 交替:使用 div.ot-slider-layer:nth-child4n+1{背景:00ffff50;} div.ot-slider-layer:nth-child4n+2{背景:0000ff50;} div.ot-slider-layer:nth-child4n+3{背景:00000050;} div.ot-slider-layer:nth-child4n+4{背景:ff000050;}
在while循环中添加一个递增的计数器,并相应地设置类或其他内容。或者,您可以将@row_number:=@row_number+1作为num添加到SELECT语句中,并使用该语句确定样式类/id/无论什么。感谢您分享此内容,但尝试后,它仅在每一行上显示第一个数组值,而不是另一行,SOK已修复$i=0;应该在循环之外你确定你准确地复制了它吗?尤其是+++$i;while循环结束时的内部部分-这就是为什么$i从0变为1到2,以此类推,以便数组键正确。我只是在我的环境中尝试了一个版本,它像预期的那样打印出来,正如我上面提到的,当我移动$I=0时,它工作了;在while循环之外