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

PHP While循环每3条数据库记录后输出指定内容的问题排查

解决每3条数据库记录后展示特定内容的问题

你的核心问题是误用了总记录数作为循环计数器,导致判断逻辑完全错位。初始的$num是rowCount()返回的总记录条数,后续自增后无法准确对应当前循环到第几条记录。

修正后的代码

<?php 
$query = "SELECT * FROM articles ORDER BY id DESC LIMIT 6";
$stmt = $con->prepare($query);
$stmt->execute();
$total = $stmt->rowCount();
if ($total>0) {
   // 单独维护一个循环计数器,从1开始计数
   $counter = 1;
   while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
      extract($row);

      echo "DATA FROM DATABASE";

      // 判断当前是否是第3、6、9...条记录
      if (($counter % 3) == 0) {
         echo '<h1>code every 3 rows</h1>';
      }
      $counter++;
   }
}
// 无记录时的提示
else{
   echo "no data found";
}
?>

逻辑说明

  • 新增$counter变量专门追踪当前循环的记录序号,从1开始递增。
  • 当$counter % 3 == 0时,说明已经处理完第3、6、9...条记录,此时输出你需要的特定内容。
  • 针对6条记录的场景,会在第3条和第6条记录后分别输出指定内容,完全符合每3条后展示的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:36:05