U voert een query uit en slaat een resultaatbron op in $result1, en haalt vervolgens alle rijen op in een lus die u echoot, en probeert deze vervolgens onmiddellijk opnieuw op te halen. Zodra u alle resultaten heeft opgehaald, kunt u ze niet meer ophalen. Dat kan, met mysql_data_seek, maar het is in de meeste gevallen echt inefficiënt en verspillend om dit te doen. Sla de resultaten de eerste keer op in een array.
$rows = array();
while ($row = mysql_fetch_assoc($result1)) {
$rows[] = $row;
}
Dan kun je door deze 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
}