PDA

Bekijk Volledige Versie : [PHP] controle of een tijd bestaat.



Nico
03/03/04, 12:45
Hallo,

Ik gebruik de volgen query om te controleren of een tijd al bestaat.

$sql2 = "SELECT 1 FROM ".$agenda_table."
WHERE datestamp = '$datestamp'
AND stimestamp < '$stimestamp'
AND etimestamp > '$stimestamp'
AND userID = '$userID'
OR datestamp = '$datestamp'
AND stimestamp < '$etimestamp'
AND etimestamp > '$etimestamp'
AND userID = '$userID'";

Dit werkt op zich perfect echter als er iets bestaat van 12:00-13:00 kan
ik een tijd inboeken van 11:00-14:00 en dat is niet de bedoeling. Het
zou moeten aangeven dat de in te boeken tijd een andere tijd overschrijdt.

Is hier een "simpele" oplossing voor te vinden?

Wie helpt mij op weg ;-)

gr,
Nico

Daniel Tryba
03/03/04, 13:55
Nico <no@email> wrote:
> $sql2 = "SELECT 1 FROM ".$agenda_table."
> WHERE datestamp = '$datestamp'
> AND stimestamp < '$stimestamp'
> AND etimestamp > '$stimestamp'
> AND userID = '$userID'
> OR datestamp = '$datestamp'
> AND stimestamp < '$etimestamp'
> AND etimestamp > '$etimestamp'
> AND userID = '$userID'";
>
> Dit werkt op zich perfect echter als er iets bestaat van 12:00-13:00 kan
> ik een tijd inboeken van 11:00-14:00 en dat is niet de bedoeling. Het
> zou moeten aangeven dat de in te boeken tijd een andere tijd overschrijdt.
>
> Is hier een "simpele" oplossing voor te vinden?

het probleem is dat je where statement (om het maar subtiel te zeggen)
helemaal niet klopt. Het op de correcte plaats toevoegen van haakjes zou
wel eens wonderen kunnen doen.

--

Daniel Tryba

N-S
07/03/04, 20:35
Daniel Tryba wrote:

> Nico <no@email> wrote:
>
>>$sql2 = "SELECT 1 FROM ".$agenda_table."
>> WHERE datestamp = '$datestamp'
>> AND stimestamp < '$stimestamp'
>> AND etimestamp > '$stimestamp'
>> AND userID = '$userID'
>> OR datestamp = '$datestamp'
>> AND stimestamp < '$etimestamp'
>> AND etimestamp > '$etimestamp'
>> AND userID = '$userID'";
>>
>>Dit werkt op zich perfect echter als er iets bestaat van 12:00-13:00 kan
>>ik een tijd inboeken van 11:00-14:00 en dat is niet de bedoeling. Het
>>zou moeten aangeven dat de in te boeken tijd een andere tijd overschrijdt.
>>
>>Is hier een "simpele" oplossing voor te vinden?
>
>
> het probleem is dat je where statement (om het maar subtiel te zeggen)
> helemaal niet klopt. Het op de correcte plaats toevoegen van haakjes zou
> wel eens wonderen kunnen doen.
>

Idd, dat is een beetje slordig, echter had dat geen invloed op de werking.

Inca
07/03/04, 21:35
N-S wrote:
>>> $sql2 = "SELECT 1 FROM ".$agenda_table."
>>> WHERE datestamp = '$datestamp'
>>> AND stimestamp < '$stimestamp'
>>> AND etimestamp > '$stimestamp'
>>> AND userID = '$userID'
>>> OR datestamp = '$datestamp'
>>> AND stimestamp < '$etimestamp'
>>> AND etimestamp > '$etimestamp'
>>> AND userID = '$userID'";
[...]
>> het probleem is dat je where statement (om het maar subtiel te
>> zeggen) helemaal niet klopt. Het op de correcte plaats toevoegen van
>> haakjes zou wel eens wonderen kunnen doen.
>
> Idd, dat is een beetje slordig, echter had dat geen invloed op de
> werking.

Welke haakjes heb je waar staan?
Heb je het al geprobeerd met:

"SELECT 1 FROM ".$agenda_table."
WHERE datestamp = '$datestamp'
AND userID = '$userID'
AND (
( stimestamp < '$stimestamp' AND etimestamp > '$stimestamp' )
OR
( stimestamp < '$etimestamp' AND etimestamp > '$etimestamp' )
)

--
Inca