Jeg ville droppe at bruge PHP-dato/tid-metoderne og stole på, at MySQL giver en forespørgsel, der ligner
SELECT * FROM table_name
WHERE date > CURRENT_DATE
OR (
date = CURRENT_DATE
AND
time > CURRENT_TIME
)
ORDER BY date ASC, time ASC LIMIT 1
OR sørger for, at den får de korrekte registreringer, ellers ville TIME-delen blokere, dvs. et resultat kl. 03:00 fra den næste dag fra at blive vist, hvis det aktuelle tidspunkt var kl. 06:00
Jeg kan se, at du bruger tidsstempelværdier der, så du altid kan indtaste PHP-datoen i stedet for CURRENT_DATE. Dette ville give et endeligt script af
$timestamp_now = strtotime(date('d-m-Y')); //Creates a timestamp of the currect date
$sql = mysql_query('SELECT * FROM table_name
WHERE date > '.$timestamp_now.'
OR (
date = '.$timestamp_now.'
AND
time > CURRENT_TIME
)
ORDER BY date ASC, time ASC LIMIT 1') or die(mysql_error());
$data = mysql_fetch_array($sql);
Jeg vil råde dig til at overveje at ændre databasen, hvis det er muligt, til at gemme som et MySQL DATOTIME-felt, da du så kan ændre denne forespørgsel til blot WHERE datetime > NOW()
, men det er helt op til dig. Har bare altid fundet MySQL-datohåndtering mere logisk end PHP'er.