Bạn đang thực hiện truy vấn và lưu trữ tài nguyên kết quả trong $ result1, sau đó tìm nạp tất cả các hàng trong một vòng lặp mà bạn lặp lại, sau đó ngay lập tức cố gắng tìm nạp lại. Sau khi tìm nạp tất cả kết quả, bạn không thể tìm nạp lại chúng. Bạn có thể sử dụng mysql_data_seek, nhưng nó thực sự không hiệu quả và lãng phí trong hầu hết các trường hợp. Lưu trữ kết quả lần đầu tiên trong một mảng.
$rows = array();
while ($row = mysql_fetch_assoc($result1)) {
$rows[] = $row;
}
Sau đó, bạn có thể xem trước mảng này.
foreach ($rows as $row) {
// Build the binary notification
$msg = chr(0).pack('n', 32).pack('H*', $row['devicetoken']) . pack('n', strlen($payload)) . $payload;
//... etc
}