Provádíte dotaz a ukládáte zdroj výsledků do $result1, poté načtete všechny řádky ve smyčce, kterou odešlete, a poté se jej okamžitě pokoušíte načíst znovu. Jakmile načtete všechny výsledky, nemůžete je znovu načíst. Můžete použít mysql_data_seek, ale ve většině případů je to opravdu neefektivní a nehospodárné. Uložte výsledky poprvé do pole.
$rows = array();
while ($row = mysql_fetch_assoc($result1)) {
$rows[] = $row;
}
Pak můžete proniknout přes toto pole.
foreach ($rows as $row) {
// Build the binary notification
$msg = chr(0).pack('n', 32).pack('H*', $row['devicetoken']) . pack('n', strlen($payload)) . $payload;
//... etc
}