Hallo ,
ich versuche eine Abfrage zu "basteln", mit der ich rausfinden kann, ob ein bestimmter(!) Eintrag älter als 1 Stunde ist. Wenn das so ist dann ist gut so, wenn nicht, dann eben nicht ;)
Dazu steht mir in der DB ein Timestamp-Feld zu Verfügung. Probiert habe ich meine Abrage mit Date_SUB(), aber irgendwie funktioniert das nicht ganz so wie ich "gehofft" habe. Ich habe das Gefühl, das die Einschränkung des Datums nicht oder nur teilweise beachtet wird. Manchmal gehts, manchmal nicht, Leider habe ich noch nicht herausgefunden wann und warum ;)
So habe ich das versucht:
$pruefung2 = 'SELECT * FROM
voteWHERE
pageid= \''.$page.'\' AND
name= \''.$name.'\' AND
ip= \''.$ip.'\' AND
datum BETWEEN SYSDATE() AND DATE_SUB(SYSDATE(), INTERVAL 1 DAY) LIMIT 1 ';
Wichtig ist eben, das alle Kriterien übereinstimmen (pageid, name , ip) und Ziel des Ganzen ist es, das nur jede Stunde einmal pro IP ein Vote abgegeben werden kann.
Prüfen tu ich das dann so:
$ergebnis = mysql_query($pruefung2);
$row = mysql_fetch_object($ergebnis);
if ($row->ip == $ip)
{
//Eintrag ist jünger als eine Stunde
echo $row->ip;
echo "<br />Eintrag verboten";
}
else
{
//Eintrag ist älter als eine Stunde
echo "Eintrag bereits vorhanden...Update wird vorgenommen<br />";
}
echo mysql_error();
echo mysql_errno();
Was habe ich falsch gemacht?