php - 如何循环遍历一个表,跳过每 11 行,同时每 10 次循环执行某些操作?

标签 php mysql

这是我认为它应该如何运作的思考过程。

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) && ($row % 11 != 0)) {
        $counter++;
        if ($counter % 10 == 0) {
         // Do something.
        }
    }
}

它应该如何工作的示例:

第 1 行 = 计数器 1
第 2 行 = 柜台 2
第 3 行 = 柜台 3
第 4 行 = 4 号柜台
第 5 行 = 5 号柜台
第 6 行 = 6 号柜台
第 7 行 = 7 号柜台
第 8 行 = 8 号柜台
第 9 行 = 9 号柜台
第 10 行 = 柜台 10
第 11 行 = 跳过
第 12 行 = 柜台 11
第 13 行 = 柜台 12
第 14 行 = 13 号柜台
第 15 行 = 柜台 14
第 16 行 = 柜台 15
第 17 行 = 16 号柜台
第 18 行 = 17 号柜台
第 19 行 = 18 号柜台
第 20 行 = 19 号柜台
第 21 行 = 20 号柜台
第 22 行 = 跳过
第 23 行 = 21 号柜台
等等

为了进一步引用,这里是我编写的完整代码,用于提醒我的网上商店的用户,如果他们的购物车中有 10 张门票,则添加后将免费获得下一张门票。谢谢贾卡尔

$fancyCounter = 1;

if ($result->num_rows > 0) {

     // output data of each row
     while($row = $result->fetch_assoc()) {
         $rawCounter++;
        if ($rawCounter % 11 !== 0) {
            $fancyCounter++;
        }
        else {
            $fancyCounter = 1;
        }
    }
}
$result->close();

if ($fancyCounter % 11 == 0) {
    $freeTicketAvailable = 1;
} else {
    $freeTicketAvailable = 0;
}

最佳答案

这里,有一个 $rawCounter 用于计算迭代的行数,还有一个 $fancyCounter 用于保持您发布的行数。

while($row=$result->fetch_assoc()){
     $rawCounter++;
     if ($rawCounter%11!==0){
         $fancyCounter++;
     } 
     if ($rawCounter%10===0){
         //Do Something
     }
}

Here is an example这给出了您的示例输出。

如果您需要将行号和计数器号分开,您还可以使用 $counter$skipCount,并且始终递增 $counter 并仅在 $counter%11==0 上递增 $skipCount 并获得所需的计数器计数(即 Row 12 = Counter 11,Row 23 = Counter 21),您可以使用 echo "Row {$counter} = Counter ".($counter-$skipCount)

关于php - 如何循环遍历一个表,跳过每 11 行,同时每 10 次循环执行某些操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33488241/

相关文章:

mysql - sql 中的键仍会保留 View 中的键吗

javascript - 调试从 jQuery 调用的 PHP 脚本

php - 将数据输入到特定行的单个 mysql 列中

php - Doctrine\DBAL\Driver\PDOException SQLSTATE[HY000] [2006] MySQL 服务器已消失

php - 使用 php 匹配两个变量的内容

php - 点击提交后登录表单错误500

MySQL 查询在 PostgreSQL 中失败

php - 如何指定 Composer 安装路径?

php - PHP脚本创建损坏的SQLite数据库

mysql - 将 MYSQL_ROW 类型转换为 String