2012-06-22 39 views
-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 
+0

你的兩個問題都是令人難以置信的基本PHP問題 - 你應該自己做一些研究,或者在發佈有關這些瑣碎任務的問題之前自己試着解決問題。 – nickb

+0

我不知道你只被允許在這裏問非常困難的問題。我確實試圖自己解決這個問題,並遇到了麻煩,因此我來這裏尋求幫助。 –

+0

我從來沒有說過你需要提出困難的問題。你所有的問題都是「我有這個,我希望它做到這一點,告訴我怎麼做」,而不是「我試圖得到這個,我試過X,Y和Z,但他們不工作,我我有這個具體問題「 – nickb

回答

0

的問題是,每當你做「$ķ++」你遞增$ K值,而你兩次每一輪在for循環增加它,試圖改變這樣的:

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

echo聲明都有$k++,這會增加它 - 基本上,你是每次運行時加2到$ k。

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

應該做你想做的。

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

爲什麼ID不是SELECTWHERE條件?

$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 />'; 
     } 
    } 
}