turn the error suppression off for a start:
for example:
$ok = @mail($email_to, $email_subject, $email_message, $headers);
to
$ok = mail($email_to, $email_subject, $email_message, $headers);
then comment this line out perhaps and instead put:
echo "mail($email_to, $email_subject, $email_message, $headers)";
from this you should be able to get more information to help figuring out why its sending multiple emails. I suspect it will be your database query pulling the same email addresses multiple times.