私のページで、ユーザは電子メールで登録し、ニュースを購読することができます。私は電子メール、IPとタイムスタンプを自分のデータベースに入れています。私は1つのIPが1日に5つの電子メールを得ることができることを確かめたいと私は私のデータベースの同じ電子メールアドレスがほしいと思わない。MySQLクエリ、datetimeを比較
私はこれを試しましたが、うまくいかず、私が望むだけ多く投稿できます。
if(isset($_POST["send"]))
{
$email = test_input($_POST['email']);
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
$query = 'INSERT INTO subscriber (data, ip, email) (SELECT CURRENT_TIMESTAMP, "'.$_SERVER['REMOTE_ADDR'].'", "'.$email.'" FROM dual where NOT EXISTS (Select count(email) as c FROM (
SELECT email FROM subscriber WHERE ip="'.$_SERVER['REMOTE_ADDR'].'" and DATE(`data`) = CURDATE() group by email) as a having c>5))';
$result = mysqli_query($dbc, $query) or die(mysqli_error($dbc));
$msg="E-mail sent successfully";
} else
{
$msg="Wrong e-mail address";
}
同じメールを書きません。挿入後にこのようなものを使用する必要がありますか? EXISTS、NOTデュアル FROM
'(メール=加入者 FROM SELECT *を "」。$メール。」');
は、あなたは私のすべてのクエリを記述してくださいことはできますか? D – Alphonse
私の編集した回答を確認してください – krasipenkov
はい、ありがとう、もう1つ必要なことは、同じメールをデータベースに書き込まないことです...編集した質問を確認してください – Alphonse