<?php
$sQuery = "SELECT projectcode, werkcode, werknemer, begintijd, eindtijd FROM urenregistratie WHERE (projectcode = '".$order."') and (datum = '".$datum."') ORDER BY projectcode, datum, werknemer, begintijd";
$result = mssql_query("SELECT Datum, Projectcode, Werknemer, Begintijd, Eindtijd FROM urenregistratie WHERE (Projectcode = '".$order."') and (Datum = '".$datum."') ORDER BY Begintijd");
// Resultaten doorlopen
echo 'Ordernummer: '.$order;
echo "<br>";
echo 'Datum : '. $datum;
echo "<br>";
echo "<br>";
$res = mssql_query($sQuery);
if ($res && mssql_num_rows($res) >= 1)
{
echo '<table BGCOLOR="666666" WIDTH="60%" BORDER=2 BORDERCOLOR="BLACK" CELLPADDING=2 CELLSPACING=1 STYLE="font-size: 12px;">';
echo '<tr>';
echo '<th width="20%"><FONT COLOR="FFFFFF">Projectcode</FONT></th>';
echo '<th width="20%"><FONT COLOR="FFFFFF">Werknemer</FONT></th>';
echo '<th width="30%"><FONT COLOR="FFFFFF">Werkcode</FONT></th>';
echo '<th width="10%"><FONT COLOR="FFFFFF">Begintijd</FONT></th>';
echo '<th width="10%"><FONT COLOR="FFFFFF">Eindtijd</FONT></th>';
echo '<th width="10%"><FONT COLOR="FFFFFF">Uren</FONT></th>';
echo '</tr>';
while ($row = mssql_fetch_array($res))
{
// begintijd bewerken,
$begintijd_uren = (int)substr($row['begintijd'], '0', '2');
$begintijd_minuten = (int)substr($row['begintijd'], '3', '2');
// Idem voor de eindtijd
$eindtijd_uren = (int)substr($row['eindtijd'], '0', '2');
$eindtijd_minuten = (int)substr($row['eindtijd'], '3', '2');
// Eerst het verschil in uren
$verschil_uren = $eindtijd_uren - $begintijd_uren;
// Dan het verschil in minuten
$verschil_minuten = ($eindtijd_minuten - $begintijd_minuten) / '60';
// Het totale verschil
$verschil_totaal = $verschil_uren + $verschil_minuten;
//totale uren van project
$totaal = $totaal + $verschil_totaal;
//decimaal afronden
$getald = number_format($verschil_totaal, 2);
$getalt = number_format($totaal, 2);
?>
<?php
$sQuery="SELECT projectcode, werkcode, werknemer, begintijd, eindtijd FROM urenregistratie WHERE (projectcode = '".$order."') and (datum = '".$datum."') ORDER BY projectcode, datum, werknemer, begintijd";
$result= mssql_query("SELECT Datum, Projectcode, Werknemer, Begintijd, Eindtijd FROM urenregistratie WHERE (Projectcode = '".$order."') and (Datum = '".$datum."') ORDER BY Begintijd");
Echter, nu is er 1 Werkcode die afzonderlijk berekent moet worden, dat is de de code:
"M01 Reisuren"
Hoe kan ik die afzonderlijk bereken? Een IF - ELSE statement is misschien wel een goed idee, alleen die krijg ik niet aan de praat (A)
M01 is een werkcode,
Alle uren moeten opgeteld worden, zodat ik kan zien hoeveel een medewerker heeft gewerkt, en in dit geval hoeveel uur er op dit project is gewerkt.
Ik wil nu dus dat alle werkcode BEHALVE M01 Reisuren berekend worden bij elkaar op, en dat M01 Reisuren apart berekend wordt!
$sQuery="SELECT projectcode, werkcode, werknemer, begintijd, eindtijd FROM urenregistratie WHERE (projectcode = '".$order."') and (datum = '".$datum."') ORDER BY projectcode, datum, werknemer, begintijd";
$result= mssql_query("SELECT Datum, Projectcode, Werknemer, Begintijd, Eindtijd FROM urenregistratie WHERE (Projectcode = '".$order."') and (Datum = '".$datum."') ORDER BY Begintijd");
Om te berekenen hoelang ze ermee bezig zijn?
Dat zijn de begintijd en de eindtijd kolom.
Ik dacht zelf aan een IF ELSE statement, maar dat lukte me niet helemaal.
Opzet is dat hij alles berekent, behalve de reisuren (M01 Reisuren) die moeten apart berekend worden, en die tijden komen uit begintijd & eindtijd
Probeer je sql statement zodanig aan te passen, dat dáár het rekenwerk gebeurt. Gebruik timediff()
TIMEDIFF(expr1,expr2)
TIMEDIFF() returns expr1 – expr2 expressed as a time value. expr1 and expr2 are time or date-and-time expressions, but both must be of the same type.
Voer desnoods 2 queries uit, waarin je in de ene de reisuren berekent en met een where clause alle andere info weglaat; de 2e query bevat dan alles behalve de reisuren. Dit gaat sneller dan een loop.