login  Naam:   Wachtwoord: 
Registreer je!
 Forum

tijdrekenen met php AND mysql

Offline pauljjb - 23/06/2010 17:11 (laatste wijziging 23/06/2010 17:17)
Avatar van pauljjbNieuw lid Probleem met de volgende procedure
resultaat van 'werktijd'
beginuur = 9:00 - einduur = 17:06 - begin_pauze = 12:00 - eind_pauze = 12:30

resultaten:
werkuren = 8:06 (o.k.)
pauze = 0:30 (o.k.)

werktijd = 77600.000000 ????

  1. <?php
  2. $sql_prestaties = "SELECT IDprestaties,IDpersoneel,achternaam,voornaam,dag,
  3. werkplaats,beginuur,einduur,begin_pauze,eind_pauze,
  4.  
  5. TIMEDIFF(einduur,beginuur) AS werkuren,
  6.  
  7. TIMEDIFF(eind_pauze,begin_pauze) AS pauze,
  8.  
  9. TIMEDIFF(einduur,beginuur)-TIMEDIFF(eind_pauze,begin_pauze) AS werktijd
  10.  
  11. FROM personeel,prestaties,werkplaatsen
  12. WHERE IDpersoneel=1 AND IDwerkplaats=IDwerkplaatsen
  13. ORDER BY achternaam DESC";
  14. $result=mysql_query($sql_prestaties) or die("Invalid query: " . mysql_error());
  15. $aantal_recs = mysql_num_rows($result);echo "$aantal_recs fiches"."<br>";
  16. while($row = mysql_fetch_array($result))
  17.  
  18. { ?>
  19.  
  20. <tr><td bgcolor="#ffffff" width="90%">
  21. <?php echo "<i>ID</i>= <b>".$row ['IDpersoneel']."</b> & <b>".$row ['IDprestaties']."</b>";
  22. echo "<i>Naam</i>: <b>".$row ['achternaam'].", ".$row ['voornaam']."</b>";
  23. echo "<i>Dag</i>: <b>".$row ['dag']."</b>";
  24. echo "<i>Werkplaats</i>: <b>".$row ['werkplaats']."</b>";
  25. echo "<i>Beginuur</i>: <b>".$row['beginuur']."</b>;";
  26. echo "<i>Einduur</i>: <b>".$row['einduur']."</b>;";
  27. echo "<i>Totaal</i>: <b>".$row['werkuren']."</b>;";
  28. echo "<i>Maaltijdpauze</i>: van <b>".$row['begin_pauze']."</b> tot <b>".$row['eind_pauze']."</b> = <b>".$row['pauze']."</b>";
  29. echo "<i>Werktijd</i>: <b>".$row['werktijd']."</b>";
  30. ?>

vinTage schreef:
gelieve code tags te gebruiken 
edit, ubb tags gaan niet in codeblokken, gelieve met comments oid aan te geven wat je wilt accentueren 

2 antwoorden

Gesponsorde links
Offline Filip - 23/06/2010 19:09
Avatar van Filip IRC guru Waarom tel je het niet uit in php en sla je dat op in de database?

Ook vind ik het maar raar dat je 4 keer TIMEDIFF gebruikt. Volgens mij kan je niet gewoon tijd-tijd = iets doen.. Daar zal ook wel een functie of dergelijke voor bestaan, maar wat jij doet is:
  1. 8 : 06 - 0 : 30


Lijkt me niet echt correct om dat als integers te benaderen met andere woorden.

De oplossing ken ik niet, maar dat zal wss wel het probleem omvatten.
Offline pauljjb - 23/06/2010 21:16
Avatar van pauljjb Nieuw lid Ik heb intussen een oplossing ontvangen op andere fora:


TIMEDIFF(TIMEDIFF(einduur,beginuur),TIMEDIFF(eind_pauze,begin_pauze)) AS werktijd

In tutorials wordt aangeraden bij voorkeur via MySQL te rekenen eerder dan in PHP, omdat daarin minder mogelijkheden zijn voor date en time bewerkingen.

Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.197s