Hallo,

Voor mijn website ben ik bezig met een scriptje. Het wil aardig lukken maar ik loop tegen een probleem aan.
Mijn gegevens wil ik graag sorteren op tijd. Dat wil zeggen ik heb een"tijd tabel" in mijn database en ik wil graag dat er gekeken wordt naar " date("Hi") en dan de eerst volgende waarde boven aan zet.
Iemand een idee?

Alvast bedankt.

mvg,
Ralph Maas
Als je in je tijd tabel een datumtijd-stempel in een DATETIME veld hebt staan, kun je daar gewoon op sorteren. Met de eerstvolgende waarde bovenaan en verder oplopend qua tijd, zou dat dan worden:

SELECT kolom
FROM tabel
WHERE datumtijdveld > NOW()
ORDER BY datumtijdveld ASC
Bedankt. het werkt bijna goed....we komen er wel! Het volgende is dat hij nu alleen de records toont die deze dag nog komen en niet alle records. Op dit tijdstip nog maar 3 van 25 (aangezien het al 21:00:00 is) Hoe krijg ik de rest er nu nog onder?
Gebruik CURRENT_DATE() i.p.v. NOW().

NOW() heeft namelijk ook een tijd in zijn resultaat, voer deze queries maar eens uit in PhpMyAdmin:
SELECT NOW();
SELECT CURRENT_DATE();

Dat zijn 2 verschillende resultaten.
frank ik wist dat niet, heb ik ook wat geleerd.
Het staat allemaal beschreven in de almachtige handleiding. Blader daar eens door wanneer je even niks te doen hebt, steek je een hoop van op. Ook vele valkuilen van MySQL staan keurig beschreven, ook hoe je data naar de bliksem kan gaan...
$result = mysql_query("SELECT * from `$table` WHERE starttijd > CURRENT_DATE()
ORDER BY starttijd ASC ");

Geeft helaas weer de oude lijst van 00:00:00 tot 23:59:59

$result = mysql_query("SELECT * from `$table` WHERE starttijd > NOW()
ORDER BY starttijd ASC ");

Geeft van nu tot 23:59:59

Ik wil graag van nu tot 23:59:59 en dan weer naar nu....

maar van nu tot 23:59:59 vindt ik al heel wat!
@frank ga ik zeker doen.

@ralph dat laatste snap snap ik niet zo goed van je.
Zelf even geprobeerd

$result = mysql_query("SELECT * from `$table` WHERE starttijd > CURRENT_TIME()
ORDER BY starttijd ASC ");

Geeft het zelfde als NOW()
Ipv van ASC (oplopend) kun je ook DESC (aflopend) sorteren.

Maar waarom ben je nu met CURRENT_TIME() aan de slag gegaan? Je had toch de DATE nodig? Of zit ik niet op te letten?

Edit: Backtics ` in je query? Wil je bugs inbouwen? Veel sterkte toegewenst...
Als ik gewoon de Records op vraag, krijg ik 00:00:00 boven aan en dan loopt dat op tot mijn laatste record. In mijn geval 23:50:00.

Met NOW() of CURENT_TIME krijg ik nog maar 3 records van 25 ,

21:50:00
22:50:00
23:50:00

Met CURENT_DATE krijg ik gewoon alles weer,

00:00:00
00:50:00
01:50:00
etc,ect,
23:50:00

Ik wil graag dat het effect van now, dus starten met 21:50:00 en dan door gaat met de vogende dag. Oftewel alle records toont i.p.v de laatste 3 van de dag (na 21.50 uur nog maar 2!)

hopelijk zo wat betere uitleg.

Reageren