Select where time difference > 24 uur. Hoe?
In mijn database heb ik een script staan waarin mensen maximaal 1x per dag ergens op kunnen klikken. Dat gaat zo:
SELECT * FROM clicks WHERE DATE(time)=DATE(NOW())
Als dat een rij teruggeeft is kan je niet meer klikken. Nu wil ik dit veranderen in 24 uur, in plaats van 1 dag. Hoe kan ik dat doen?
Groetjes!
where DATE(time) > DATE_SUB(CURDATE( ),INTERVAL 1 DAY);
Hartelijk dank!
zegmaar:
RECORD: 27-12-2009 23:43
HUIDIG: 27-12-2009 23:53
geeft 0 rijen
RECORD: 27-12-2009 23:43
HUIDIGE TIJD: 28-12-2009 02:03
geeft wel wat terug.
ik wil dus dat er minimaal 24 uur tussen zit. Hoe krijg ik dat voor elkaar?
Hoe zou ik anders via PHP een boolean kunnen laten verschijnen als het verschil tussen nu en die datetime uit de DB groter is dan 24 uur?
Gelieve Niet Bumpen:
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.
SanThe.
Ik kon niet meer reageren omdat ik niet ingelogd was, stond er, maar ik was wel ingelogd... Dus vandaar die dubbele post. Sorry
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
SELECT
CASE WHEN
NOW() < time + INTERVAL 24 HOUR
THEN 1
ELSE 0
END AS click_boolean
FROM
tabel
CASE WHEN
NOW() < time + INTERVAL 24 HOUR
THEN 1
ELSE 0
END AS click_boolean
FROM
tabel
Dit geeft de waarde 1 of 0 terug in het veld 'click_boolean' afhankelijk van het feit of de waarde in 'time' langer dan 24 uur geleden is.
Code (php)
1
2
3
2
3
$query2=mysql_query("SELECT CASE WHEN NOW() < time + INTERVAL 24 HOUR THEN 1 ELSE 0 END AS click_boolean FROM clicks WHERE userid=$userid AND adid=$id") or die(mysql_error());
$rij22=mysql_fetch_assoc($query2);
if ($rij22["click_boolean"]==0) {
$rij22=mysql_fetch_assoc($query2);
if ($rij22["click_boolean"]==0) {
dit heb ik nu. Klopt dat? hij doet het niet echt.. :P
Quote:
hij doet het niet echt.. :P
Misschien moet je eens controleren of je query ook echt lukt? En of het fetchen lukt? Kortom: bouw error checking in.
of zit je alles bij je provider te proberen ?
Probeer lokaal eerst de query op de MySQL prompt command line, dit is de manier om het foutloos te krijgen. Vervang de variabelen door hard coded strings.
Gewijzigd op 01/01/1970 01:00:00 door John D
Hij werkt nu feilloos. Hartelijk bedankt!
Wie weet krijg je wel een high performance!
Ja ik ga nu lekker Rise of Nations spelen. Dank jullie wel :D