php - 在 X 条记录 PHP 后结束 Foreach

标签 php mysql foreach

我有以下查询:

$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/

相关文章:

php - 如何在php中将mysql日期更改为 "Ago"

java - 将mysql Jdbc驱动源代码导入到eclipse工作区

arrays - 对于范围内的每个单元格,将单元格值添加到数组 - IF 条件满足

php - 我怎样才能删除html标签

php - 正则表达式查找和替换 HTML 注释标签的内容

php - 初学者更新记录 PDO 时遇到问题

php - 通过引用传递键和值的替代方法 :

swift - 在SwiftUI中使用ForEach插入,更新和删除动画

php - 如何将我的 Android 应用程序连接到我的 PHP/MySQL 后端?

php - 我怎样才能加快 Bootstrap 工具提示