Tja, 'werkt niet' blijft toch een vage bedoening. Geen mens die weet wat er fout gaat, verkeerde uitkomsten of errors, en dat is toch wel zo handig.
Het is mij overigens niet duidelijk waarom je CURRENT_DATE() in de SELECT hebt staan en dan ook nog zonder ALIAS. Dat is lastig werken in php.
De functie DATEDIFF() ziet er goed uit, maar je moet wel bedenken dat je nu met datums bezig bent en niet met tijden (uren, minuten en seconden) wat je met TIMEDIFF() kunt berekenen. De vraag is dus wat je nu precies wilt berekenen en wat er fout gaat.
Wil graag het verschil weten tussen nu en de ingevoerde data/tijd. Als het kleiner is als 30 min dan moet er iets mee gaan gebeuren.
SELECT naam, tijd, TIMEDIFF( TIMEDIFF( NOW( ) , tijd ) ) AS minuten
FROM klanten
MySQL retourneerde:
#1064 - 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 '( TIMEDIFF( NOW( ) , tijd ) ) AS uren
FROM klanten
LIMIT 1' a
Met de query is niets mis, tenzij jouw kolomnamen niet goed zijn, daar kan het dus niet aan liggen. Controleer jij wel of de query is gelukt en hoeveel records er zijn geselecteerd?
<?
$query = ""; // jouw SQL
$result = mysql_query($query);
if(!$result){
echo 'Query mislukt vanwege: '.mysql_error();
}
else {
$rows = mysql_num_rows($result);
echo 'er zijn '.$rows.' geselecteerd.'
while($row = mysql_fetch_assoc($result)){
echo $row['minuten'];
}
}
?>
Opmerking: De functie MINUTE() kan prima werk verrichten, maar lijkt mij hier niet op zijn plaats. TIMEDIFF() geeft een antwoord in het formaat hh:mm:ss en om daar nu alleen de minuten van te nemen, het lijkt mij wat vreemd.