login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Kolom automatisch aanpassen

Offline Ruultje - 02/11/2009 13:52
Avatar van RuultjeNieuw lid Ik ben op zoek naar het volgende. Maar kan hier niets van vinden.

In de database (via een php script) kan men begin- en eindtijden invullen van een werkzaamheid. Het gaat dan niet om de precieze tijd maar om het aantal uren. Per werkzaamheid gelden echter aparte uren. Zo kan er gekeken worden hoeveel uren zijn gestoken in één project per maand (bijvoorbeeld). Dus bijvoorbeeld Administratie is op dag 1 2 uur. Op de volgende dag is de 2 uur het beginuur. Er moet dan geteld worden vanaf 2. Dus wanneer er drie uur zijn gedraaid wordt er vijf ingevuld. De tijd die loopt dus altijd door.

Nu komt het probleem. Het kan zijn dat er een keer iets wordt vergeten. Stel dag 3 heeft 4 uur gedraaid. Dan moet het totaal dus 9 zijn. Maar nu is deze worden vergeten. Er wordt dan de volgende keer wel iets ingevuld. Daarin wordt als eindtijd 11 ingezet. Dus in principe zijn het dan 3 uur. Omdat de vorige keer vergeten is wordt dit echter 7.

Er zal dan dus gewijzigd moeten worden. Het tussenliggende project moet worden ingevoerd. Nu is dit geen probleem. Waar ik dan wel tegenop loop is dat hij bij de volgende (dus die wat in principe verkeerd telt) het aantal uren 7 blijft van dag 4. Handmatig pas ik dan de juiste beginuren toe die het eigenlijk zouden moeten zijn. Maar ik zoek hiervoor iets makkelijkers. Is het mogelijk dat een tussenliggende later wordt toegevoegd en dat niet alleen deze wordt toegevoegd maar dat ook de beginuren van de dienst daarna automatisch aangepast wordt? Zonder dat dit handmatig moet gebeuren?

Ik hoop dat de uitleg een beetje duidelijk is. En iemand een 'tip' heeft over hoe ik dat zou kunnen aanpakken. Of dat het gewoonweg niet mogelijk is.

7 antwoorden

Gesponsorde links
Offline NTS64 - 02/11/2009 14:12 (laatste wijziging 02/11/2009 14:12)
Avatar van NTS64 PHP gevorderde Dus als ik het goed begrijp, vul je elke dag een aantal uren in, en vergeet je bijvoorbeeld één dag:

  1. Dag 1 - 2u
  2. Dag 2 - 3u + 2u = 5u
  3. Dag 3 - vergeten(hier moest 4u komen)
  4. Dag 4 - 5u + 3u = 8u


En nu wil je dat dag 4 gelijk wordt aan 12u, nadat je het 'vergeten' uur invult?

Ik weet niet wat je database structuur is(het zou fijn zijn moest je die even meedelen), maar je kan bijvoorbeeld maken dat de totale som van uren wordt herberekend, telkens je nieuwe data invoert.
Offline Ruultje - 02/11/2009 16:56 (laatste wijziging 02/11/2009 17:00)
Avatar van Ruultje Nieuw lid Niet helemaal.

Ik zet hier een voorbeeld.

  1. Dag 1 - 0u tot 2u (2 uur geduurd)
  2. Dag 2 - 2u tot 5u (3 uur geduurd)
  3. Is vergeten (4 uur)
  4. Dag 4 - 5u tot 12 (7 uur geduurd)
  5.  
  6. Ik verander punt 3 dan handmatig dan wordt het zo:
  7. Dag 1 - 0u tot 2u
  8. Dag 2 - 2u tot 5u
  9. Dag 3 - 5u tot 9u (tussengevoegd)
  10. Dag 4 - 5u tot 12u (deze gaat dan dus fout)


Bij dag 4 blijft het aantal uren dus hetzelfde. Deze moet ik echter beginnen bij 9 uur. Maar omdat deze al eerder is ingevuld blijft hij op 5 staan.

Ik pas dag 4 daarom ook handmatig aan. Maar het lijkt mij makkelijker wanneer dit automatisch aangepast wordt.

Zo zou het dan moeten worden
  1. Dag 1 - 0u tot 2u
  2. Dag 2 - 2u tot 5u
  3. Dag 3 - 5u tot 9u
  4. Dag 4 - 9u tot 12u


Database structuur

  1. ID (auto_inc)
  2. ProjectID (wordt gekoppeld aan de tabel projecten)
  3. Datum
  4. Beginuur
  5. Einduur
Offline NTS64 - 02/11/2009 18:06
Avatar van NTS64 PHP gevorderde Dat datumveld in je databasestructuur, is dat het veld waarop de desbetreffende rij wordt ingevoegd, of de datum waarop de uren zijn gewerkt? In het laatste geval kan je bij het invoegen van nieuwe data kijken of er een recentere datum in de database staat en deze dan updaten, in relatie tot wat je net hebt toegevoegd.
Offline Ruultje - 02/11/2009 20:31
Avatar van Ruultje Nieuw lid De datum geldt voor de datum waarop is gewerkt.

Nog iets anders:
Het wordt allemaal ingevuld via een formulier. In dat formulier zijn de beginuren verborgen. Hierin staat natuurlijk ook een datumveld. Is het mogelijk die datum te koppelen. Wanneer er dan een datum (twee dagen terug bijvoorbeeld) wordt geselecteerd in dat veld dat er dan naar de einduren van de dag ervoor gekeken wordt en deze dan als beginuren gelden?

Ik zal in ieder geval eens kijken wat mij zal lukken.
Offline jaronneke - 03/11/2009 08:16
Avatar van jaronneke MySQL interesse onchange="submit();", dan controlere of die datum bestaat in de database staat ( natuurlijk met de bijpassende gebruiker ).
Offline NTS64 - 03/11/2009 12:05 (laatste wijziging 03/11/2009 12:06)
Avatar van NTS64 PHP gevorderde
Ruultje schreef:
De datum geldt voor de datum waarop is gewerkt.

Nog iets anders:
Het wordt allemaal ingevuld via een formulier. In dat formulier zijn de beginuren verborgen. Hierin staat natuurlijk ook een datumveld. Is het mogelijk die datum te koppelen. Wanneer er dan een datum (twee dagen terug bijvoorbeeld) wordt geselecteerd in dat veld dat er dan naar de einduren van de dag ervoor gekeken wordt en deze dan als beginuren gelden?

Ik zal in ieder geval eens kijken wat mij zal lukken.


Doe je dat dan al niet? Hoe kan je anders voorttellen?
Oké, even alles op een rijtje zetten...
De meest recente datum moet toch kloppen wanneer je er eentje tussenvoegt? Zoals ik al zei, je kan toch elke keer als je een datum bewerkt, kijken of er al recentere data zijn en die dan updaten in relatie tot de datum die je tussenvoegt.
Offline Ruultje - 03/11/2009 15:36
Avatar van Ruultje Nieuw lid
jaronneke schreef:
onchange="submit();", dan controlere of die datum bestaat in de database staat ( natuurlijk met de bijpassende gebruiker ).


Bedankt. Zal eens gaan kijken wat mij gaat lukken. Moet wel goedkomen. Zo niet dan laat ik dit weten.

Woedi schreef:
[..quote..]

Doe je dat dan al niet? Hoe kan je anders voorttellen?
Oké, even alles op een rijtje zetten...
De meest recente datum moet toch kloppen wanneer je er eentje tussenvoegt? Zoals ik al zei, je kan toch elke keer als je een datum bewerkt, kijken of er al recentere data zijn en die dan updaten in relatie tot de datum die je tussenvoegt.


Ik had hem nu op de ID geselecteerd. Dus de laatste ID (van desbetreffend project) die werd gebruikt. Nu heb ik dit in ieder geval gezet op datum.
Het gaat inderdaad dan om de meest recente datum.

Ik ben nog niet ver gekomen maar heb wel nu enkele ideeën opgedaan (via dit topic) wat ik zou kunnen doen. Ga daar vanavond verder naar kijken.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.206s