You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP的mysqli_fetch_array循环中显示每隔n行的记录?

解决PHP循环中仅显示指定行/每隔n行的问题

嘿,我明白你现在的困扰——看着别人的解决方案却没法套到自己的代码里确实让人头疼。先看看你的现有代码,它能正常遍历所有记录输出表格行,现在咱们来修改它实现你要的“仅显示每隔n行(这里是第2行)”的需求。

首先,核心思路是用一个计数器变量来追踪当前循环到了第几行,然后根据计数器的值判断是否输出这一行。这里分两种常见情况,你可以根据自己的实际需求选择:

情况1:仅显示第2行(单一行记录)

如果你的需求是只拿出结果集中的第2条记录来显示,那可以这样修改代码:

// 初始化计数器,从0开始
$counter = 0;
while($row=mysqli_fetch_array($result, MYSQL_ASSOC)) { 
    $counter++; // 每循环一次,计数器加1,标记当前是第几行
    $date = $row['date']; 
    $o_name = $row['o_name']; 
    $g_name = $row['g_name']; 
    
    // 只在计数器等于2的时候输出这一行
    if ($counter === 2) {
        echo "<tr> <td>$date</td> <td>$o_name</td> <td>$g_name</td> </tr>";
        // 如果找到第2行后不想继续循环,可以加break;节省资源
        // break;
    }
}

情况2:每隔1行显示一行(即第2、4、6...行,每2行取一行)

如果你的需求是每隔一行显示一行(也就是偶数行),那把判断条件改成取模运算即可:

$counter = 0;
while($row=mysqli_fetch_array($result, MYSQL_ASSOC)) { 
    $counter++;
    $date = $row['date']; 
    $o_name = $row['o_name']; 
    $g_name = $row['g_name']; 
    
    // 当计数器是偶数时(能被2整除),输出这一行
    if ($counter % 2 === 0) {
        echo "<tr> <td>$date</td> <td>$o_name</td> <td>$g_name</td> </tr>";
    }
}

为啥你之前的尝试可能失败?

大概率是这两个小问题:

  • 计数器初始化后,没在循环里执行$x++,导致计数器一直是0,永远触发不了判断条件;
  • 语法错误,比如$x=0后面没加分号,导致代码直接报错。

你可以根据自己的实际需求选上面的其中一种写法,测试一下应该就能正常工作啦!

内容的提问来源于stack exchange,提问作者Jason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:39:01