次のようなものを試してください:
$results = $stm1->fetch();
print_r($results);
while($results = $stm1->fetch()){
print_r($results);
}
最初の要素を取得するために実際にループは必要ありません。その後、2番目のループであったものから反復を再開できます。
の問題
結果セットに1つ以上の結果がある場合、常に $stm1->fetch()
を呼び出します 2回:1回目はループに入り、2回目は2回目の反復で、実際に($iterator == 1)
を確認します。 もはや真実ではありません。
結果セットに結果が2つしかない場合は、2番目のループに表示されます(フェッチには結果が残っていないため)。