w tabeli bazy danych mam rekord, w któym przechowuje identyfikatory adresów email z innej tabeli. Chcę wysłać maile w pętli do wszystkich adresów, których identyfikatory znajdują się w tym rekordzie.
mój kod:
$query = @mysql_query("SELECT `email_id` FROM distribution_lists WHERE id = ".$list_id) or displayError(3); $query = @mysql_query("SELECT * FROM `users` WHERE id IN ('$mail_list[email_id]') AND verify_status = '1' AND send_status = 'to_send'") or displayError(3); $i = 0; if ($i == 10) { $i = 0; } else { $mail->AltBody = "Otwórz tę wiadomość aplikacją obslugującą wiadomości HTML"; $mail->MsgHTML($body); $mail->AddAddress($row['email'], $row['name']); if(!$mail->Send()) { } else { echo "Wiadomość wysłana do: " . $row["name"] . ' (' . str_replace("@", "@", $row["email"]) . ')<br />'; $query = @mysql_query("UPDATE `users` SET send_status = 'sent' WHERE email = '$row[email]'") or displayError(3); if (!$query) { displayError(4); } else { $mail->ClearAddresses(); $mail->ClearAttachments(); $i++; } } } }
echo $mail_list['email_id'] zwraca mi ciąg identyfikatorów po przecinku (1,2,3,4,...,n), więc składnia jest odpowiednia dla klauzuli IN(). Niemniej email i tak wysyła się tylko do 1 usera i pętla kończy bieg. Szukam na googlach przykładów z użyciem składni select z where in, ale przykładów użycia takiej kwerendy jest jak na lekarstwo i ciężko znaleźć coś co mnie nakieruje na rozwiązanie problemu. A może po prostu pętla jest źle skonstruowana? Bardzo proszę o pomoc lub chociaż nakierowanie na właściwe tory
