メールを指定した時間に送信しようとしています。
手順はMYSQLに送信したい時間とメールの色々を入れて、
CRONで現在時間を調べて、合致したものを送信する。
このような手順で実現しようとしていますが、
最初でつまずいています。
送信先メールアドレスを while で抽出しながら MYSQLへインサートするつもりですが
一度しかインサートしてくれません。
インサートのsqlを[print $sql;]で、表示したものをphpMyAdminで SQL を実行すると
キチンと挿入できます。
**3回分まとめてSQL を実行してもうまく挿入できます。
前のページから送ったものは全て[print] で、思い通りの結果が表示します。
どなたか、ご教授お願いいたします。
$sql = "select count(*) as cnt from customer WHERE customerID IN (1,2,3,5,8)";
$rst = mysql_query($sql, $con);
$col = mysql_fetch_array($rst);
$tcnt = $col["cnt"];
mysql_free_result($rst);
print $tcnt."通送信<br />";
$subject ="これはPOSTで送りました";
$honbun ="これはPOSTで送りました";
$from = '送信元メールアドレス';
$jikan = "これはPOSTで送りました";
$sql ="select * from customer WHERE customerID IN (1,2,3,5,8)";
$rst = mysql_query($sql, $con);
while($col = mysql_fetch_array($rst)) {
$customerID= $col['customerID'];
$name = $col['name'];
$mail = $col['mail'];
i++
$sql = "INSERT INTO mail_queue_timer (timermailID,customerID, jikan ,sender , recipient ,headers, body ) VALUES
($timermailID, $customerID,$jikan , \"$from\" , \"$mail\" ,\"$subject\" , \"$honbun\" ) ";
$rst = mysql_query($sql, $con);
}
お礼
出来ました!! $rst を $result に変えてみました。 print $sql; をwhile文 の外に置いてみていたので、最後の一回しか 表示してないので、変えてもうまく行かないなあ、と思っていました。 しかし、データベースを良く見てみると全部インサートできていました。 よく考えると、頂いた回答が理解できます! 大変分かりやすい回答ありがとうございました!!
補足
はい! まさにその通り、結果をインサートしたいのです。 while文は5回回っていますので、その中にインサート文を入れたらいいと単純に考えていました。 while文の中で $name などは5回回っていて、[print $name;] とすると5人分出てきます。 別変数で受け取るとはどのようにしたら良いでしょうか? すみません、宜しくお願いいたします。