我有一个数据库,我希望每个第二个元素都以绿色着色。
$sql=$pdo->query("SELECT * FROM blume WHERE 1");
$i = 0;
while($row = $query->fetch(PDO::FETCH_ASSOC)) {
if ($i % 2 == 0){ echo '<div class="red">'.$row ['title'].'</div>';}
else {echo '<div class="green">'.$row ['title'].'</div>';
$i++;
}
这个不起作用。我总是全都是绿色的,而且都是红色的。
答案 0 :(得分:1)
检查此代码。你需要增加$ i的值,而你却错过了关闭标记&#39;}&#39;
$sql=$pdo->query("SELECT * FROM blume WHERE 1");
$i = 0;
while($row = $query->fetch(PDO::FETCH_ASSOC)) {
if ($i % 2 == 0){ echo '<div class="red">'.$row ['title'].'</div>';}
else {echo '<div class="green">'.$row ['title'].'</div>' };
$i++;
}
您也可以将此代码用于代码。这是一个简单的条件,因此您的代码将更具可读性
<?php
$sql=$pdo->query("SELECT * FROM blume WHERE 1");
$i = 0;
while($row = $query->fetch(PDO::FETCH_ASSOC)) {
$class = ($i % 2 == 0) ? 'red' : 'green';
echo '<div class="'.$class.'">'.$row ['title'].'</div>';
$i++;
}
?>
答案 1 :(得分:0)
你可以清理一下,使用你在之间切换的颜色数组来获得你想要的效果:
$sql=$pdo->query("SELECT * FROM blume WHERE 1");
$colors = array('red', 'green');
$i = 0;
while($row = $query->fetch(PDO::FETCH_ASSOC)) {
echo sprintf('<div class="%s">%s</div>', $colors[$i%2], $row['title']);
$i++;
}
由于$i%2
返回0或1,因此将索引数组中两个元素之一。