Re: for loop problem
| From: | Miguel Cruz | Date: | Wed, 20 Mar 2002 20:15:29 +0000 |
| Subject: | Re: for loop problem | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-89396@lists.php.net to get a copy of this message | ||
On Wed, 20 Mar 2002, Kris Vose wrote:
> I have a problem with a piece of code that uses the mail function in a
> for loop. It sends out mail to all the users in the database but it has
> a problem with attaching their specific name into the message. What
> happens is the first user in the database will get their name in the
> e-mail (Dear John,). Then the second user in the database will get the
> last users name and their name in the e-mail (Dear John, Dear Mike)
> ...and so on and so forth.
>
> If ($button != "")
> {
> $t = mysql_query("SELECT * from AddExisting");
> $number_of_customers = mysql_num_rows($t);
>
> for($i=0; $i<$number_of_customers;$i++)
> {
> $r = mysql_fetch_array($t);
> $email = $r["EMAIL_ADDRESS"];
> $cusname = $r["Name"];
>
> $to = $email;
> $subject = "hello";
> $message = "Dear $cusname,".$message;
> $fromaddress = "me@you.com";
>
> mail($to, $subject, $message, $fromaddress);
> }//end of for
> }//end of if
You don't need a for loop here; you don't actually care specifically how
many customers there are, just that you iterate once for each one. And
you've put a raw email address in the "extra headers" argument to mail()
rather than a properly-formed From: header.
Here's the code you want:
if (!empty(button))
{
$t = mysql_query("SELECT * from AddExisting");
while ($r = mysql_fetch_assoc($t))
{
$message = "Dear {$r[name]},\n{$message}";
mail ($r[email_address], 'hello', $message, 'From: me@you.com');
}
}
miguel