Sie führen eine Abfrage durch und speichern eine Ergebnisressource in $result1, rufen dann alle Zeilen in einer Schleife ab, die Sie ausgeben, und versuchen dann sofort, sie erneut abzurufen. Nachdem Sie alle Ergebnisse abgerufen haben, können Sie sie nicht erneut abrufen. Nun, Sie können mysql_data_seek verwenden, aber es ist in den meisten Fällen wirklich ineffizient und verschwenderisch. Speichern Sie die Ergebnisse beim ersten Mal in einem Array.
$rows = array();
while ($row = mysql_fetch_assoc($result1)) {
$rows[] = $row;
}
Dann können Sie durch dieses Array foreachen.
foreach ($rows as $row) {
// Build the binary notification
$msg = chr(0).pack('n', 32).pack('H*', $row['devicetoken']) . pack('n', strlen($payload)) . $payload;
//... etc
}