Вы перезаписываете переменную $email
каждый раз в цикле.Вместо этого вы хотите создать массив и добавлять электронную почту в массив каждый раз через цикл.Когда закончите, объедините адреса электронной почты в массиве с запятыми перед отправкой почты.
Поэтому перед циклом (возможно, после оператора $rows = ...
) инициализируйте новый массив, например:
$rows = mysql_num_rows($result);
$emails = array(); /* Add this line */
Затем каждый раз в цикле добавляйте письмо в массив:
while($row = mysql_fetch_array($query)) {
array_push($emails, $row['email']);
/* ... */
}
Наконец, присоединяйте их запятыми в своем письме:
mail(implode(',', $emails), "Subject: $subject", $message, $headers);
В качестве альтернативыможно отправить одно отдельное электронное письмо каждому пользователю, например так:
foreach ($emails as $email) {
mail($email, "Subject: $subject", $message, $headers);
}