-1

我有以下 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++.' - j='.$j.' | ';
                echo $row['color'].' - k='.$k++.' - j='.$j.'<br />';

            }

        }
    }
}

此代码生成:

John - k=1 - j=1 | Blue - k=2 - j=1
John - k=3 - j=2 | Blue - k=4 -  j=2
John - k=5 - j=3 | Blue - k=6 -  j=3
Paul - k=7 - j=1 | Green - k=8 -  j=1
Paul - k=9 - j=2 | Green - k=10 -  j=2
Paul - k=11 - j=3 | Green - k=12 -  j=3
George - k=13 - j=1 | Red - k=14 -  j=1
George - k=15 - j=2 | Red - k=16 -  j=2
George - k=17 - j=3 | Red - k=18 -  j=3

我希望它生成这个:

John - k=1 - j=1 | Blue - k=1 - j=1
John - k=2 - j=2 | Blue - k=2 -  j=2
John - k=3 - j=3 | Blue - k=3 -  j=3
Paul - k=4 - j=1 | Green - k=4 -  j=1
Paul - k=5 - j=2 | Green - k=5 -  j=2
Paul - k=6 - j=3 | Green - k=6 -  j=3
George - k=7 - j=1 | Red - k=8 -  j=1
George - k=8 - j=2 | Red - k=8 -  j=2
George - k=9 - j=3 | Red - k=9 -  j=3
4

4 回答 4

1

这两个echo语句都有$k++,这会增加它 - 基本上,你在每次运行时将 2 添加到 $k 。

echo $row['name'].' - k='.$k.' - j='.$j.' | ';
echo $row['color'].' - k='.$k.' - j='.$j.'<br />';
$k++;

应该做你想做的。

于 2012-06-22T17:18:17.610 回答
1
for ($j=1; $j <= 3; $j++)
{
    echo $row['name'].' - k='.$k.' - j='.$j.' | ';
    echo $row['color'].' - k='.$k.' - j='.$j.'<br />';
    $k++;
}
于 2012-06-22T17:18:28.593 回答
1

为什么ID不是WHERE你的条件SELECT

$k = 1;
for ($i = 0; $i < 5; $i++) {
    $stmt = $db->query('SELECT * FROM services_main WHERE ID = ' . $i);
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        for ($j = 1; $j <= 3; $j++) {
            echo $row['name'].' - k=' . $k . ' - j=' . $j . ' | ';
            echo $row['color'] . ' - k=' . $k++ . ' - j=' . $j . '<br />';
        }
    }
}
于 2012-06-22T17:23:40.730 回答
0

问题是,每当您制作“$k++”时,您都会增加 $k 值,并且在 for 循环中每轮将其增加两次,请尝试更改为:

for($j=1; $j <= 3; $j++)
{
    echo $row['name'].' - k='.$k.' - j='.$j.' | ';
    echo $row['color'].' - k='.$k.' - j='.$j.'<br />';
    $k++;
}
于 2012-06-22T17:21:31.473 回答