1

データベース内のすべてのユーザー(約500人)にユーザー名を電子メールで送信するPHPコードを作成しようとしています。各ユーザーのメールアドレスとユーザー名を取得して、配列に保存することに成功しました。ただし、個々のユーザーに個々のユーザー名を電子メールで送信する方法がわかりません。これを行うにはループを使用する必要があると確信しforeachていますが、運がありませんでした。これが私が持っているものです。

<?php
include('databaseConn.php');

$query = mysql_query("SELECT * FROM staff");
$emailArray;

while ($row = mysql_fetch_array($query)) {
$emailArray[] = array($row['email']=>$row['username']);
}

print_r($emailArray); //This associative array now contains each username along with their respective email address.

?>

== * ** * ** * ** ** ===メール機能付き

<?php
include('functions/core.php');

$query = mysql_query("SELECT * FROM users");
$emailArray;

while ($row = mysql_fetch_array($query)) {
    $emailArray[] = array($row['email']=>$row['username']);
}

foreach($emailArray as $email => $username) {
    echo $username; // outputs the indexes.


$subject = 'Accoutn Details';

$message = 'This email contains your login details.<br/><br/>
<b>Username: '.$username.'</b><br/>
<br/><br/>Kind regards,<br/>';

$headers = 'From: noreply@xxxxx.co.uk' . "\r\n" .
    'Reply-To: noreply@xxxxx.co.uk' . "\r\n" .

$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

mail($emailAddress, $subject, $message, $headers);

}


//print_r($emailArray);

?>
4

2 に答える 2

0

foreachの使用方法が質問の場合... http: //www.php.net/manual/en/control-structures.foreach.php

例えば:

foreach ($emailArray as $email => $username) {
    // Send an email to $email with their $username
}

@Dagonは正しいです。連想配列が必要なものが他にない場合は、2回繰り返す必要はありません。配列が必要な場合でも、必ずしも連想的である必要はありません。それは、DBからの生の行である可能性があり、それを繰り返すことができます。連想配列が必要なのは、キー(電子メールアドレス)で値(ユーザー名)を検索する必要がある場合だけです。これは、私が知る限り、実行する必要はありません。

于 2013-03-19T21:41:44.123 に答える
0

メールをループで使用するのはお勧めできません。ただし、1回限りのメールのように聞こえますが、ほとんどの共有ホストでは、一度に500通のメールを送信することはできません。

$subject = 'Account Details';
$headers = 'From: noreply@xxxxx.co.uk' . "\r\n" .
    'Reply-To: noreply@xxxxx.co.uk' . "\r\n" .

$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

while ($row = mysql_fetch_array($query)) {

$message = 'This email contains your login details.<br/><br/>
<b>Username: '.$row['username'].'</b><br/>
<br/><br/>Kind regards,<br/>';

mail("$row['email']", $subject, $message, $headers);

    }
于 2013-03-19T21:47:52.320 に答える