PHP отправить электронную почту foreach – отправить

Я использую скрипт для отправки электронной почты проверяемым пользователям (утверждение), но скрипт отправляет только для первого зарегистрированного пользователя, вот сценарий:

if (isset($_POST['approve'])) { $ticked = $_POST['approve']; foreach($ticked as $id) { $SQL = "SELECT * FROM userinfo WHERE id='".intval($id)."'"; $result = mysql_query("set names 'utf8'"); $result = mysql_query($SQL); if (mysql_num_rows($result) > 0) { $db_field = mysql_fetch_array($result); $fname = $db_field['first_name']; $lname = $db_field['last_name']; $email = $db_field['email']; $fon = $db_field['telephone']; $ad = $db_field['ad']; $data = json_decode($ad); $message = 'Approved message'; mail($mail, 'Your Subject', $message); set_include_path(getcwd()."/../library/"); include_once("Google_Spreadsheet.php"); $u = "hjgfhjgfh@gmail.com"; $p = "sdgfdjkgfjg"; $ss = new Google_Spreadsheet($u, $p, "Registracija_nova", "Sheet1"); $row = array( "id" = > "=ROW() - 2", "name" = > $fname, "last_name" = > $lname, "email" = > $email, "phone_number" = > $fon, "address" = > $data - > address, "prevozbg" = > $data - > prevozbg, "skipass" = > $data - > skipass //"json" => $ad ); $ss - > addRow($row); mysql_query("DELETE FROM userinfo WHERE `id` = '".intval($id)."'"); /* $ImePrezimePos = "HP EG NPI - Registracija"; $EmailAdresaPos = "hp_eg_npi@eventregistration.rs"; $pfw_header = "From: ". $ImePrezimePos . " <" . $EmailAdresaPos . ">\r\n"; $pfw_header .= "MIME-Version: 1.0\r\n"; $pfw_header .= "Content-type: text/html; charset=utf-8\r\n"; $pfw_subject = "Potvrdni email"; $pfw_email_to = "$email"; $msg = "Poštovani/a $fname $lname Vaša registracija je odobrena od strane administratora.<br/> Vaš HP tim"; */ //$msg = "Dear $fname $lname your registration was confirmed by admin."; //mail($email, 'Confirmation', $msg); //mail($pfw_email_to, $pfw_subject ,$msg ,$pfw_header ) ; $pfw_header. = "MIME-Version: 1.0\r\n"; $pfw_header. = "Content-type: text/html; charset=utf-8\r\n"; $fromName = "HP EG NPI - Registracija"; $fromEmail = "hp_eg_npi@eventregistration.rs"; $toEmail = "$email"; $subject = "Prijava prihvacena"; function sendEmail($fromName, $fromEmail, $toEmail, $subject, $emailBody, $pfw_header) { $mail = new PHPMailer(); $mail - > FromName = $fromName; $mail - > From = $fromEmail; $mail - > AddAddress("$toEmail"); $mail - > Subject = $subject; $mail - > Body = $emailBody; $mail - > isHTML(true); $mail - > WordWrap = 150; if (!$mail - > Send()) { return false; } else { return true; } } function readTemplateFile($FileName) { $fp = fopen($FileName, "r") or exit("Unable to open File ".$FileName); $str = ""; while (!feof($fp)) { $str. = fread($fp, 1024); } return $str; } //Data to be sent (Ideally fetched from Database) $name = "$first_name"; $lastname = "$last_name"; $UserEmail = "$email"; //Send email to user containing username and password //Read Template File $emailBody = readTemplateFile("../html-email/mail2.html"); //Replace all the variables in template file $emailBody = str_replace("#username#", $fnames, $emailBody); $emailBody = str_replace("#password#", $lnames, $emailBody); //Send email $emailStatus = sendEmail($fromName, $fromEmail, $UserEmail, $subject, $emailBody, $headers); } } } 

И ошибка:

Неустранимая ошибка: не удается обновить sendEmail () (ранее объявленный в /home/^^/public_html/^^/admin/approve.php:82) в /home/^^/public_html/^^/admin/approve.php на линии 82

И из предыдущего файла, вызывающего функцию:

 echo "<input name=\"approve[]\" type=\"checkbox\" value='".$row["id"]."' >"; 

Что я могу сделать, чтобы отправить его на каждое электронное письмо, которое я проверил? Все заранее!

Переместите sendEmail() вне цикла foreach . Поскольку он находится внутри цикла, поэтому вы получили сообщение об ошибке. Не удается обновить sendEmail ()

Вы определяете sendEmail() внутри своего цикла. Функция определена в первой итерации вашего цикла, во второй итерации возникает ошибка (потому что функция уже существует), и ваш скрипт останавливается. Переместите определение функции из цикла.

Вы должны переместить ВСЕ определения своих функций из цикла, функция может быть определена только один раз.