In meiner Seite Benutzer kann sich mit E-Mail registrieren und abonnieren für Neuigkeiten. Ich lege E-Mail, IP und Zeitstempel in meine Datenbank. Ich möchte sicherstellen, dass eine IP nur 5 E-Mails pro Tag erhalten kann und ich nicht die gleichen E-Mail-Adressen in meiner Datenbank möchte.MySQL Abfrage, Vergleich Datetime
Ich habe es versucht, aber es funktioniert nicht, ich kann so viele, wie ich möchte.
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";
}
Und um nicht dieselben E-Mails zu schreiben, sollte ich so etwas nach dem Einfügen verwenden?
FROM dual WHERE NOT EXISTS ( SELECT * FROM Teilnehmer WHERE email = "‘ $ E-Mail.. '“)';
Können Sie schreiben Sie mir bitte alle query:
Sie können auch
Oder auf diese Weise anders schreiben? Es ist ein wenig schwierig für mich: D – Alphonse
Überprüfen Sie meine bearbeitete Antwort – krasipenkov
Ja, danke, und eine weitere Sache, die ich brauche, ist nicht die gleichen E-Mails in die Datenbank schreiben ... Überprüfen Sie meine Frage – Alphonse