Coba sesuatu seperti:
$results = $stm1->fetch();
print_r($results);
while($results = $stm1->fetch()){
print_r($results);
}
Anda sebenarnya tidak memerlukan loop untuk mendapatkan elemen pertama, lalu Anda dapat melanjutkan iterasi dengan apa yang dulunya merupakan loop kedua Anda.
Masalah dengan
adalah jika ada satu atau lebih hasil dalam kumpulan hasil, Anda akan selalu panggil $stm1->fetch()
dua kali:sekali pertama kali Anda memasukkan loop, dan kemudian kedua kalinya pada iterasi kedua sebelum Anda benar-benar memeriksa ($iterator == 1)
tidak lagi benar.
Jika hanya ada dua hasil di set hasil Anda, maka itu akan terwujud dalam loop kedua yang tidak pernah dimasukkan (karena pengambilan tidak akan memiliki hasil yang tersisa).