Probeer iets als:
$results = $stm1->fetch();
print_r($results);
while($results = $stm1->fetch()){
print_r($results);
}
Je hebt eigenlijk geen lus nodig om het eerste element te krijgen, en dan kun je de iteratie hervatten met wat vroeger je tweede lus was.
Het probleem met
is dat als er een of meer resultaten in de resultatenset zijn, u altijd bel $stm1->fetch()
tweemaal:eenmaal de eerste keer dat u de lus binnengaat, en dan een tweede keer bij de tweede iteratie voordat u daadwerkelijk controleert dat ($iterator == 1)
is niet langer waar.
Als er slechts twee resultaten in uw resultatenset zijn, zal dat zich manifesteren in de tweede lus die nooit wordt ingevoerd (omdat fetch geen resultaten meer zal hebben).