这是我得到的:
$pagecount=0;
while($row = $result->fetch_assoc()){
echo '<div style="background-image:url(images/paper.jpg);">';
while ($pagecount < 3) {
while($row = $result->fetch_assoc()){
echo '<div class="content"><div class="name">' . $row['victim'] . '</div><div class="cod">' . $row['cod'] . $pagecount . '</div></div>';
$pagecount++;
}
}
$pagecount=0;
echo '</div>';
}
问题是,当它运行时,它会打印出$victim,$cod然后$pagecount。我从不希望页数高于 3,所以我输入了 while 语句,所以当它达到 3 时,它应该退出循环,然后页数应该回到 0,然后再次开始增加。但是,当它运行时,Pagecount 会越来越高,并且不会达到 3 然后回到 0。谁能帮忙??我的状况或循环有什么问题吗?
同样只是在侧面,谁能告诉我而不是使用第一个$row = $result->fetch_assoc()
我可以使用一些东西来检查结果是否为空,因为目前,它将跳过 mysql 数据库中的第一个条目。
干杯伙计们!
编辑:到目前为止测试了每个人的解决方案,他们都为我工作。它只是展示了如何通过许多不同的方法可以做一件事!
谢谢大家,你们都非常非常有帮助。非常感谢。:)我最终要做的是完全从内部循环中删除整个while
语句。
但是,由于第一个$row = $result->fetch_assoc()
仍然跳过第一个数据库条目。有什么办法吗?
试试这个:
$pagecount=0;
while($row = $result->fetch_assoc()){
echo '<div style="background-image:url(images/paper.jpg);">';
while($pagecount < 3 && $row = $result->fetch_assoc()){
echo '<div class="content"><div class="name">' . $row['victim'] . '</div><div class="cod">' . $row['cod'] . $pagecount . '</div></div>';
$pagecount++;
}
$pagecount=0;
echo '</div>';
}
使用 $row = $result->fetch_assoc()
在循环中使用 $row = $result->fetch_assoc()
会使结果的指针过于前进。我建议您在执行循环之前将所有对象存储在数组中。
while ($pagecount < 3) {
while($row = $result->fetch_assoc()){
echo '<div class="content"><div class="name">' . $row['victim'] . '</div><div class="cod">' . $row['cod'] . $pagecount . '</div></div>';
$pagecount++;
}
}
只要它能fetch_assoc,你的内心就会一直循环,因为你不检查页数。
将条件移动到内部,同时:
while($pagecount < 3 && $row = $result->fetch_assoc()){
echo '<div class="content"><div class="name">' . $row['victim'] . '</div><div class="cod">' . $row['cod'] . $pagecount . '</div></div>';
$pagecount++;
}
$pagecount++;
应移出内环,即
while($row = $result->fetch_assoc()){
echo '<div class="content"><div class="name">' . $row['victim'] . '</div><div class="cod">' . $row['cod'] . $pagecount . '</div></div>';
//moved 1 level: $pagecount++;
}
$pagecount++;
}
缩进代码可能有助于:)