我有以下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++;