Controleren of het al verhuurd is (check datums)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

The master

the master

02/09/2007 12:44:00
Quote Anchor link
Ik ben bezig met een programma om te registreren wat er verhuurd is .
van het te verhuren ding wordt bijgehouden.
(in dit voorbeeld auto)

tabel boeking
- id (auto nummering)
- auto
- van_datum
- tot_datum

nu staat er in de database het volgende

auto van tot
auto1 1-9-2007 6-9-2007
auto1 11-9-2007 15-9-2007

dus auto1 is niet verhuurd tussen 7-9-2007 en 10-9-2007

nu wil ik dat zodra ik een nieuwe boeking maak van bv 7-9 tot 10-9 dat die eerst controleerd of de auto vrij is.

ik ben er al de hele ochtend mee bezig maar het lukt niet.

hij moet dus controleren of de ingevoerde datum in dit geval 7-9 tot 10-9 vrij is zo ja moet die verder gaan.

stel ik wil boeken tussen 7-9 en 12-9
(wat niet kant van de auto is van 11-9 weer verhuurd) moet ik hier een fout melding krijgen.

Maar hoe ga ik dit aanpakken

ik heb zelf gedacht om de verhuur van datum te verlijken met een van_datum en tot_datum maar dit werk alleen bij de eerste rij.

Tips en trucs zijn welkom

alvast bedankt
 
PHP hulp

PHP hulp

26/04/2024 09:03:45
 
Jan Koehoorn

Jan Koehoorn

02/09/2007 12:48:00
Quote Anchor link
Ja leuk probleem he? Ik heb het ook ooit gehad, bij een lokalenrooster. Je moet het zo zien: als je een nieuwe periode wilt inboeken, moet je weten of hij overlapt met reeds bestaande periodes.

Dus wanneer overlappen twee afspraken? Of: wanneer overlappen ze niet.

Mijn oplossing was toen: twee afspraken overlappen niet als:

de eindtijd van afspraak 2 VOOR de begintijd ligt van afspraak 1

OF

de begintijd van afspraak 1 NA de eindtijd ligt van afspraak 2

Als de tijden mogen aansluiten, dus afspraak 1 eindigt om 15:00 uur en afspraak 2 begint om 15:00 uur, dan moet je gebruik maken van "groter dan of gelijk" en "kleiner dan of gelijk".
 
The master

the master

02/09/2007 12:51:00
Quote Anchor link
Jan Koehoorn schreef op 02.09.2007 12:48:
Ja leuk probleem he? Ik heb het ook ooit gehad, bij een lokalenrooster. Je moet het zo zien: als je een nieuwe periode wilt inboeken, moet je weten of hij overlapt met reeds bestaande periodes.

Dus wanneer overlappen twee afspraken? Of: wanneer overlappen ze niet.

".


Ja dat is het idee er achter dat klopt..
datum mogen niet met elkaar overlappen maar hoe controleer ik dat
 
Jan Koehoorn

Jan Koehoorn

02/09/2007 13:08:00
Quote Anchor link
Als je in je DB met DATETIME velden werkt, kun je ze gewoon vergelijken:

WHERE datumtijd1 > datumtijd2

dat regelt MySQL dus voor je.
 
The master

the master

02/09/2007 13:15:00
Quote Anchor link
Jan Koehoorn schreef op 02.09.2007 13:08:
Als je in je DB met DATETIME velden werkt, kun je ze gewoon vergelijken:

WHERE datumtijd1 > datumtijd2

dat regelt MySQL dus voor je.


kan je nog iets meer helpen.

want ik snap de logica er niet achter.

ik heb in mijn DB met DATETIME staan de datums zoals hier boven vermeld.

handmatig voer in een te verhuren datum in . 7-9 tot 10-9

die haal ik op met post en dan heb ik

$datum1 = 7-9-07
$datum2 = 10-9-07

als ik $datum1 > tot_datum(uit de db) dat gaat goed maar zodra ik datum2 wil vergelijken met de van_datum dan gaat het fout.

want het verlijk met de eerste van_datum en niet met de van_datum die hoger staat dan de tot_datum waarmee datum1 vergeleken wordt
 
Frank -

Frank -

02/09/2007 13:27:00
Quote Anchor link
$datum2 = 10-9-07

En waar is dan de datum? Een datum gebruik je in het formaat yyyy-mm-dd, een ISO-formaat.

Hoe jij dat op het scherm toont of in laat voeren, dat is een ander verhaal, maar in de database gebruik je gewoon 2007-09-10 voor de datum 10 september 2007.
 
The master

the master

02/09/2007 13:32:00
Quote Anchor link
pgFrank schreef op 02.09.2007 13:27:
$datum2 = 10-9-07

En waar is dan de datum? Een datum gebruik je in het formaat yyyy-mm-dd, een ISO-formaat.

Hoe jij dat op het scherm toont of in laat voeren, dat is een ander verhaal, maar in de database gebruik je gewoon 2007-09-10 voor de datum 10 september 2007.


ja de datum notatie dat klopt die moet idd anders.

het wordt id yyyy-mm-dd maar dan weet ik nog niet hoe ik een "gat" in de database kan zoeken.

of zo dat 2 datums tussen liggen..
Gewijzigd op 01/01/1970 01:00:00 door the master
 
The master

the master

06/09/2007 19:23:00
Quote Anchor link
schop
 
Frank -

Frank -

06/09/2007 19:37:00
Quote Anchor link
Quote:
of zo dat 2 datums tussen liggen..
Wanneer ik 'tussen' vertaal naar het engels, kom ik op BETWEEN uit. Ga daar eens mee stoeien.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.