Опитайте нещо като:
$results = $stm1->fetch();
print_r($results);
while($results = $stm1->fetch()){
print_r($results);
}
Всъщност не се нуждаете от цикъл, за да получите първия елемент, и след това можете да възобновите итерацията с това, което е било вашият втори цикъл.
Проблемът с
е, че ако има един или повече резултати в набора от резултати, ще винаги извикване на $stm1->fetch()
два пъти:веднъж при първото влизане в цикъла и след това втори път при втората итерация, преди действително да проверите това ($iterator == 1)
вече не е вярно.
Ако има само два резултата във вашия набор от резултати, тогава това ще се прояви във втория цикъл, който никога няма да бъде въведен (тъй като при извличането няма да има останали резултати).