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

时间:2012-06-22 16:31:35

标签: php

我有以下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增量,而不是每行增加。

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

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++;
}

答案 1 :(得分:0)

每次进行内部“for”循环时,不要增加$ k,而是每次迭代“while”循环时增加一次:

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

答案 2 :(得分:0)

替换它:

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++;