0

最近のエントリのリストを、cronジョブを使用して週に1回電子メールでmysqlテーブルに送信しようとしています。通常、最近のエントリのリストを呼び出すために、これを使用します。

$result = mysql_query("SELECT * FROM stock WHERE PurchaseDate < '$TODAY' AND PurchaseDate > '$LASTWEEK'")
or die(mysql_error());
while ($list = mysql_fetch_array($result))

$messageしかし、明らかに私はこのコードをphpメールの変数に入れることはできません。

何か案は?

4

3 に答える 3

2
$result = mysql_query("SELECT * FROM stock WHERE PurchaseDate < '$TODAY' AND PurchaseDate > '$LASTWEEK'") or die(mysql_error());
$entries = 'Entries: '; 
while ($list = mysql_fetch_array($result)) {
    $entries .= $list[entry] . ', ';
}

mail('someone@test.com', 'Stock', $entries);

これは単なる例です。テーブルがどのように見えるかわからない。

于 2013-01-25T16:43:16.083 に答える
0

メール関数は文字列を受け取り、配列を返します。

したがって、それを内破するimplode(',', $list);か、結果セットを使用して文字列を作成する必要があります。

より安全で、ヘッダーインジェクションなどを防ぐPHPMailer、Zend Mail、またはSwift_Mailerライブラリを使用する必要があります。

于 2013-01-25T16:39:52.240 に答える
0
try {

$result = mysql_query("SELECT * FROM your_table WHERE blank = 'blank' AND blank2 ='blank2'");
$num_rows = mysql_num_rows($result);

if($num_rows < 1) {
    throw new Exception('There is no user who qualifies...');
}
if(!$result) {
throw new Exception('An Error Occurred..');
}

//mail off whatever you need to each user that qualifies based on your query criteria..

while($row = mysql_fetch_array($result)) {
$firstname = stripslashes($row['firstname']);
$lastname = stripslashes($row['lastname']);
$email = stripslashes($row['email']);
//and any other variables you need for the email...

$subject = 'Some Subject';
$message = 'Hello '.$firstname.' blah..blah...';

mail($email, $subject, $message);
//do something else...
echo 'All users emailed.';
}

}

catch (Exception $e) {

echo $e->getMessage();

}
于 2013-01-25T19:14:41.017 に答える