需要仅使用多个循环语句递增一组结果


need to increment a group of results only using multiple loop statements

我有以下php代码:

    $k=1;
    for($i=0; $i < 5; $i++)
    {
        $stmt = $db->query('SELECT * FROM services_main');
        while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            if ($row['ID'] == $i) {
                for($j=1; $j <= 3; $j++)
                {
                    echo $row['name'].' - k='.$k++.'<br />';
                }
            }
        }
    }

此代码生成以下内容:

    John - k=1
    John - k=2
    John - k=3
    Paul - k=4
    Paul - k=5
    Paul - k=6
    George - k=7
    George - k=8
    George - k=9

我正在尝试做的是让它生成这个:

    John - k=1
    John - k=1
    John - k=1
    Paul - k=2
    Paul - k=2
    Paul - k=2
    George - k=3
    George - k=3
    George - k=3

我不知道如何为每个分组增加 k 而不是在每一行上递增。

提前感谢您的帮助!

k++放在while循环之外。

$k=1;
for($i=0; $i < 5; $i++)
{
    $stmt = $db->query('SELECT * FROM services_main');
    while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        if ($row['ID'] == $i) {
            for($j=1; $j <= 3; $j++)
            {
                echo $row['name'].' - k='.$k.'<br />';
            }
        }
    }
    $k++;
}
不要每次

通过内部"for"循环时递增$k,而是在"while"循环的每次迭代中递增一次:

for($j=1; $j <= 3; $j++)
{
    echo $row['name'].' - k='.$k.'<br />';
}
$k++;

替换这个:

for($j=1; $j <= 3; $j++)
            {
                echo $row['name'].' - k='.$k++.'<br />';
            }

有了这个

for($j=1; $j <= 3; $j++)
            {
                echo $row['name'].' - k='.$k.'<br />';
            }
$k++;