在样式方面,我试图从mysql查询中输出每一行,但我希望尽量避免使用偏移量和多个查询。
当前代码:
$sql = "SELECT * FROM news ORDER BY id DESC LIMIT 1";
$query = mysqli_query($connection, $sql);
while($row = mysqli_fetch_array($query)){
$title = $row["title"];
// output first news item with a style
echo '<div class="style-1">'.$title.'</div>';
}
$sql = "SELECT * FROM news ORDER BY id DESC LIMIT 1 OFFSET 1";
$query = mysqli_query($connection, $sql);
while($row = mysqli_fetch_array($query)){
$title = $row["title"];
// output second news item with different style
echo '<div class="style-2">'.$title.'</div>';
}因此,我希望避免让2个(或更多)查询变得简单,因为我希望对每一行使用不同的css类,如下所示:
$sql = "SELECT * FROM news ORDER BY id DESC LIMIT 10";
$query = mysqli_query($connection, $sql);
while($row = mysqli_fetch_array($query)){
$title = $row["title"];
} // end while
$i = 1;
for($i; $i<2; $i++){ // output first row item with first style
echo '<div class="style-1">'.$title.'</div>';
} // end for loop 1
for($i; $i<3; $i++){ // output first row item with second style
echo '<div class="style-2">'.$title.'</div>';
} // end for loop 2
for($i; $i<4; $i++){ // output third row item with third style
echo '<div class="style-3">'.$title.'</div>';
} // end for loop 3
...期望产出:
<div class="style-1">News Headline Title 1</div>
<div class="style-2">News Headline Title 2</div>
<div class="style-3">News Headline Title 3</div>
...发布于 2015-10-14 16:07:05
我假设您需要3种不同的样式,下面是我如何实现这一点的方法:
$sql = "SELECT * FROM news ORDER BY id DESC LIMIT 10";
$query = mysqli_query($connection, $sql);
$i = 1;
while($row = mysqli_fetch_array($query)){
$title = $row["title"];
if($i<2){
$styleNumber = 1;
}
else if($i<3){
$styleNumber = 2;
}
else if($i<4){
$styleNumber = 3;
}
echo '<div class="style-'.$styleNumber.'">'.$title.'</div>';
$i++;
}
// end while输出
标题1(风格1)
标题2(风格2)
标题3(风格3)
标题4(风格3)
发布于 2015-10-14 16:52:23
这不是答案。只是@JonTan回答的一个评论/改进,因为它被选择为正确的答案。
我猜OP需要为每3条记录循环样式,而不是只为3条第一次返回的记录设置样式。
这意味着我们可以将条件从if($i<3){、if($i<2){更改为以下内容:
$i = 1;
while($row = mysqli_fetch_array($query)){
$title = $row["title"];
if($i % 3 == 0){
$styleNumber = 3;
} else if($i % 2 == 0){
$styleNumber = 2;
} else {
$styleNumber = 1;
}
echo '<div class="style-'.$styleNumber.'">'.$title.'</div>';
$i++;
} https://stackoverflow.com/questions/33130128
复制相似问题