Du gör en fråga och lagrar en resultatresurs i $result1, hämtar sedan alla rader i en loop som du ekar ut och försöker omedelbart hämta den igen. När du väl har hämtat alla resultat kan du inte hämta dem igen. Jo du kan, med mysql_data_seek, men det är verkligen ineffektivt och slösaktigt att göra det i de flesta fall. Lagra resultaten första gången i en array.
$rows = array();
while ($row = mysql_fetch_assoc($result1)) {
$rows[] = $row;
}
Sedan kan du gå igenom denna array.
foreach ($rows as $row) {
// Build the binary notification
$msg = chr(0).pack('n', 32).pack('H*', $row['devicetoken']) . pack('n', strlen($payload)) . $payload;
//... etc
}