Ik ben met een urenregistratie script bezig en ben stuk gelopen op het optellen en bereknen van de tijden.

Na wat enkele tips hier al op het forum heb ik nu het volgende:

<?
$select = mysql_query('SELECT TIMEDIFF(eind,begin) AS verschil FROM uren WHERE klantid ='.$_GET[id]) or die (mysql_error());
while($out = mysql_fetch_array($select))
{
echo $out[verschil]."<br>\n";
}
?>

Hij berekend nu prima het tijd verschil tussen de begin- en eindtijd. Nu wil ik echter de verschillen ook optellen en als een tijd weergeven (het totaal aantal gewerkte uren zeg maar) Hoe doe ik dit? Ik heb al dingen geprobeerd met timestamps en explode maar kom er niet uit.
<?php
$select  = mysql_query('SELECT TIMEDIFF(eind,begin) AS verschil FROM uren WHERE klantid ='.$_GET[id]) or die (mysql_error()); 
$totaal = 0;
while($out = mysql_fetch_array($select)) 
{ 
    echo $out['verschil']."<br>\n";
    $totaal += $out['verschil'];
}
?> 
@gem13 hoe tel data op dan?? yyyy-mm-dd-hh-mm-ss +yyyy-mm-dd-hh-mm-ss = ??

volgens mij moet het zo:
<?
$select = mysql_query('SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF(eind,begin)))) AS verschil FROM uren WHERE klantid ='.$_GET[id]) or die (mysql_error());
while($out = mysql_fetch_array($select))
{
echo $out[verschil]."<br>\n";
}
?>
De link
Bedankt voor de reacties!!

@bart: Prachtige query was is zelf echt niet opgekomen!! Alleen hij pakt nu alleen de laatste id en geeft het verschil daarvan weer. Hij telt ze dus niet allemaal op.

Reageren