2013-10-30 113 views
0

我被困在這段代碼中,並希望這裏的精彩頭腦可以幫助。 :)我正在做一個查詢,導致從數據庫中選擇兩個電子郵件地址。我的代碼並沒有向每個收件人發送一封電子郵件,而是向第一個收件人發送了一封電子郵件,其中包含兩封電子郵件。mysqli發送電子郵件循環

換句話說,收件人得到一封電子郵件中說,

你好,Recipent一個 消息

你好,接收方B 消息


接收方B根本沒有消息。

這是代碼。任何幫助你可以提供的讚賞!

$sql2="SELECT c.email, c.fname FROM c INNER JOIN c_zip_save ON c.username = c_zip_save.username WHERE c_zip_save.zip_code = $zip"; 
$result = mysqli_query($con,$sql2); 
while($row = $result->fetch_array()) 
{ 
$rows[] = $row; 
} 

foreach($rows as $row) 
{ 
$c_email = $row["email"]; 
$c_fname = $row["fname"]; 
$recipient2 = "$c_email"; 
$subject2 = "SUBJECT"; 
$message2 .= "Hi, $c_fname! \n\nThis is an automated courtesy message\n\n"; 

$extra2 = "From: [email protected]\r\n"; 

mail ($recipient2, $subject2, $message2, $extra2); 
} 

回答

1

這是因爲你一直追加到您的$message2串無需每次重新它。你既可以在foreach循環的開始與$message2 = "";重新設置或更改$message2 .= "your message"只是$message2 = "your message"

+0

謝謝你,菲利普!這工作的一種享受! – user2672667

+0

不用擔心。雖然我的答案解決了這個問題,但我建議使用@Your Common Sense在他們的答案中使用的'sprintf()'樣式。 –

+0

如果我們能夠接受我的幫助,如果您可以接受我的或您的Common Sense的答案,它也會很好。 –

4
$message = "Hi, %s! \n\nThis is an automated courtesy message\n\n"; 

foreach($rows as $row) 
{ 
    ... 
    mail ($recipient2, $subject2, sprintf($message, $c_fname), $extra2); 
}