Hãy thử một cái gì đó như:
$results = $stm1->fetch();
print_r($results);
while($results = $stm1->fetch()){
print_r($results);
}
Bạn thực sự không cần một vòng lặp để lấy phần tử đầu tiên và sau đó bạn có thể tiếp tục lặp lại với những gì đã từng là vòng lặp thứ hai của bạn.
Vấn đề với
là nếu có một hoặc nhiều kết quả trong tập kết quả, bạn sẽ luôn luôn gọi $stm1->fetch()
hai lần:một lần vào lần đầu tiên bạn vào vòng lặp và sau đó là lần thứ hai vào lần lặp thứ hai trước khi bạn thực sự kiểm tra rằng ($iterator == 1)
không còn đúng nữa.
Nếu chỉ có hai kết quả trong tập kết quả của bạn, thì điều đó sẽ hiển thị trong vòng lặp thứ hai không bao giờ được nhập (vì tìm nạp sẽ không còn lại bất kỳ kết quả nào).