Zkuste něco jako:
$results = $stm1->fetch();
print_r($results);
while($results = $stm1->fetch()){
print_r($results);
}
K získání prvního prvku vlastně nepotřebujete smyčku, a pak můžete pokračovat v iteraci s tím, co bývalo vaší druhou smyčkou.
Problém s
je, že pokud je v sadě výsledků jeden nebo více výsledků, budete vždy volání $stm1->fetch()
dvakrát:jednou při prvním vstupu do smyčky a podruhé při druhé iteraci, než skutečně zkontrolujete, že ($iterator == 1)
již není pravda.
Pokud jsou ve vaší sadě výsledků pouze dva výsledky, projeví se to v druhé smyčce, která nebude nikdy zadána (protože načtení nezůstane žádné výsledky).