クエリを実行して結果リソースを$result1に格納し、エコーアウトするループ内のすべての行をフェッチして、すぐに再度フェッチしようとしています。すべての結果を取得すると、再度取得することはできません。 mysql_data_seekを使用することはできますが、ほとんどの場合、これを行うのは非常に非効率的で無駄です。結果を初めて配列に保存します。
$rows = array();
while ($row = mysql_fetch_assoc($result1)) {
$rows[] = $row;
}
次に、この配列を介してforeachすることができます。
foreach ($rows as $row) {
// Build the binary notification
$msg = chr(0).pack('n', 32).pack('H*', $row['devicetoken']) . pack('n', strlen($payload)) . $payload;
//... etc
}