我有以下查询:
$trabajos = $con->query("SELECT * FROM portafolio ORDER BY RAND() LIMIT 4");
while ($po = $trabajos->fetch_array()) {
$trab[] = $po;
}
这个查询工作正常,但是,它只显示了 4 条记录,但是在同一页的另一部分我又需要相同的表信息,但我不希望它受到限制,比如说我想要 10 条而不是只有 4. 所以。
- 节标题
- Section Slider <-- 这里只显示预期的 4 个项目
使用 foreach 如下:
foreach ($trab as $it) {
// My html Code
}
- 中间部分一些信息
- 主体部分更多信息
- Section Mid End Footer <-- 这里我需要与 slider 部分相同的信息,但布局不同,而不是只有 4 个项目,我需要 10 个项目。
对于最后一项,我必须打开另一个与以前类似的查询。
$trabajos = $con->query("SELECT * FROM portafolio ORDER BY RAND() LIMIT 10");
while ($po = $trabajos->fetch_array()) {
$trab[] = $po;
}
所以我在想有没有办法使用:
$trabajos = $con->query("SELECT * FROM portafolio ORDER BY RAND()");
while ($po = $trabajos->fetch_array()) {
$trab[] = $po;
}
没有 LIMIT
的查询,而是将 foreach
限制为仅 fetch
前 4 行,或者有没有办法使用该查询使用 LIMIT
但不是 4 或 10,假设我使用 20,并且对于第一个 foreach
只显示前 4 个,对于第二个 foreach
显示前 4 个之后的其余部分。
主要思想是对同一信息的查询不超过 1 个。
最佳答案
这将退出一个循环,但为什么不查询 10 条记录,构建你的结果,全部 10 个,然后只输出其中的 4 个,在那里和远处的所有 10 个。
$x = 0;
foreach ($trab as $it) {
if($x == 5){
break; //will exit loop as will return.
}
// My html Code
++$x;
}
这适用于任何类型的循环,您也可以使用 continue 跳到循环的下一段
foreach ($trab as $it) {
if($x < 5){
continue; //code below here wont run until $x >= 5.
}
// My html Code
++$x;
}
关于php - 在 X 条记录 PHP 后结束 Foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24716925/