所以我正在尝试为约会网站处理礼物。您可以拥有的最大礼物是 9,并且必须返回 9 个礼物跨度,无论是对于拥有 9 个礼物的用户,所有 9 个都是从数据库返回的,还是从数据库返回 4 个,其余 5 个从 for 循环返回,或者0 来自 db 和所有 9 来自 for 循环。查询 mysql 数据库,while 循环输出用户拥有的礼物,而 for 循环负责确保返回总共 9 个礼物跨度,具体取决于 while 循环的输出(目前不能正确包装):
$i=0;
while($row = $user_gifts->fetch(PDO::FETCH_ASSOC)){
$i++;
$gift_name = $row["gift_name"];
if ($i%3==1) {
$gifts_show .= '<div>';
}
$gifts_show .= '<span>'.$gift_name.'</span>';
}
if($i<1){ //0 gifts from db, all 9 no gifts
$i=0;
for ($i = $i; $i < 9; $i++) {
if ($i%3==1) $gifts_show .= '<div>';
$gifts_show .= '<span>No Gift.</span>';
if ($i%3==0) $gifts_show .= '</div>';
}
} else { //1+ gifts from db, mix gifts with no gifts until 9 are reached
for ($i = $i; $i < 9; $i++) {
$gifts_show .= '<span>No Gift.</span>';
if ($i%3==0) $gifts_show .= '</div>';
}
}
每 3 个礼物应该被包裹在一个 div 中。所以用 3 个 div 包裹的 9 个礼物的输出应该是这样的:
<div>
<span>DB Gift 1</span>
<span>DB Gift 2</span>
<span>DB Gift 3</span>
</div>
<div>
<span>DB Gift 4</span>
<span>No Gift</span>
<span>No Gift</span>
</div>
<div>
<span>No Gift</span>
<span>No Gift</span>
<span>No Gift</span>
</div>
知道如何在 div 中正确输出和包装每 3 个跨度 3 次,而不管从数据库输出了多少礼物?