WHERE文の中で、MYSQLにINSERTが出来ない。
メールを指定した時間に送信しようとしています。
手順は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);
}
お礼
何度も助けて頂きまして、ありがとうございます。 $array[] = $col['mail']; } //print implode(",",$array)."<br />"; $address = implode(",",$array); このように変数に格納して、次のページでの登録に成功いたしました。 配列と言うのが、今まではうっすらとしか理解していなかったのですが [implode]は、配列を繋げるとあったのでなかなかうまく行きませんでしたが。 すっきり理解した感じです! >よほどのことがない限りこの方法はどうかと思います・・・ >SQLとしての検索性がまったくなくなります。 >正規化について少し学習をしたほうがよいかもしれません 私も今度作ったテーブルはいびつだなぁ! 何か方法が無いかな? とは考えていましたが、 これ以外思いつきませんでした。。 また、勉強課題が増えましたm(__)m 本当にありがとうございました。