Deze query

<?php

$sql = mysql_query("SELECT naam,rank,rankimg,rankex,dia_online, CASE WHEN TIMEDIFF(now(), online) > '00:03:00' THEN 'nee' ELSE 'ja' END AS status, CASE WHEN TIMEDIFF(now(), dia_online) > '00:00:05' THEN 'nee' ELSE 'ja' END AS d_status FROM leden WHERE geactiveerd = 'ja' ORDER BY rank,ranklvl") or trigger_error(mysql_error());

?>

werkt niet op

http://mebus.robertdeiman.net/members.php

Maar terwijl ie het wel gewoon doet op mijn eigen server: http://localhost/

http://mebus.robertdeiman.net/info.php

Ik zal ff kijku wat de sql versie is van mijn eigen server: http://localhost/

Want werkt dit niet in deze mysql versie?

Of doe ik nu iets fouts?

GR. mebus!

edit: Hier staat de sql versie van mijn eigen server:

http://84.105.39.21/
TIMEDIFF is beschikbaar vanaf MySQL 4.1.1
O oké:( Is der dan een oplossing voor op de manier hoe ik het nu doe?

GR. mebus!
Twee manieren: cookie zetten dat maar vijf minuten duurt, of een UNIX timestamp in je DB zetten.
Dus dit zou wel kunnen werken:

veld online is een datetime tabel

<?php

CASE UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(online) > '180' THEN 'nee' ELSE 'ja' END AS status

?>

GR. mebus!

edit: Weet je wat gewoon ff testen:)
Ehmmmm dit werkt ook niet:(

<?php

$sql = mysql_query("SELECT naam,rank,rankimg,rankex,dia_online, CASE UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(online) > 180 THEN 'nee' ELSE 'ja' END AS status FROM leden WHERE geactiveerd = 'ja' ORDER BY rank,ranklvl") or trigger_error(mysql_error());

?>

Error:

Notice: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'THEN 'nee' ELSE 'ja' END AS status FROM leden WHERE geactiveerd in /data/members/paid/r/o/robertdeiman.net/htdocs/mebus/members.php on line 81

CASE,THEN,ELSE,END,AS dit werkt toch wel op sql versie: 3.23.57?

GR. mebus!
Probleem is opgelost:D

Was WHEN vergeten er neer te zetten

<?php

$sql = mysql_query("SELECT naam,rank,rankimg,rankex,dia_online, CASE WHEN UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(online) > 180 THEN 'nee' ELSE 'ja' END AS status, CASE WHEN UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(dia_online) > 5 THEN 'nee' ELSE 'ja' END AS d_status FROM leden WHERE geactiveerd = 'ja' ORDER BY rank,ranklvl") or trigger_error(mysql_error());


?>

http://dev.mysql.com/doc/refman/4.1/en/control-flow-functions.html

Dankjewel Jan!:D Voor de wijzeging dat TIMEDIFF pas vanaf versie 4.1.1 of hoger werkt:) En hiervoor een goed alternatief is:)

GR. mebus!

Reageren