Hallo zusammen,
für eine eingabe eines zeitfeldes über ein interface verwende ich ein formular, bei dem der user eine Zeit eintragen kann. z.b von 11:00 bis 12:00.
Wie stelle ich es am besten an, wenn ein user eine überschneidende zeitangabe angibt z.B 10:00 bis 12:00 oder 09:00 bis 13:00 uhr? -> hier müsste es eine fehlermeldung geben, da es bereits einen eintrag von 11:00 bis 12:00 uhr gibt und dieses zeitfenster nicht mehr angewählt werden kann.
ich habe es über eine query in der derart versucht:
Bei einer überschneidung der zeitfenster liefert das array kein Ergebniss, was auch richtig ist - kann man die abfrage irgendwie invertieren zu sagen suche mir alle zeiten, die zwischen input_eingabe_from_time <= existierendes DatumDB und input_eingabe_to_time >= existierendes DatumDB liegen?
oder wie mache ich die abfrage so, dass ich die input values mit den existierenden Feldern vergleichen kann?
danke für euer hilfe
ps: die selection der zeit ist abhängig vom $datum (01.12.2014) und $room (eine nummer)
für eine eingabe eines zeitfeldes über ein interface verwende ich ein formular, bei dem der user eine Zeit eintragen kann. z.b von 11:00 bis 12:00.
Wie stelle ich es am besten an, wenn ein user eine überschneidende zeitangabe angibt z.B 10:00 bis 12:00 oder 09:00 bis 13:00 uhr? -> hier müsste es eine fehlermeldung geben, da es bereits einen eintrag von 11:00 bis 12:00 uhr gibt und dieses zeitfenster nicht mehr angewählt werden kann.
ich habe es über eine query in der derart versucht:
PHP-Code:
public function timeSet( $room, $date, $user_name, $user_id, $from_time, $to_time){
// check for date if exists
$query_check_room_occupation = $this->db_connection->prepare('SELECT room_name, reservation_date, from_time, to_time FROM roomreservation WHERE room_name=:room_name AND reservation_date=:reservation_date BETWEEN from_time=:from_time AND to_time=:to_time');
$query_check_room_occupation->bindValue(':room_name', $room, PDO::PARAM_STR);
$query_check_room_occupation->bindValue(':reservation_date', $date, PDO::PARAM_STR);
$query_check_room_occupation->bindValue(':from_time', $from_time, PDO::PARAM_STR);
$query_check_room_occupation->bindValue(':to_time', $to_time, PDO::PARAM_STR);
$query_check_room_occupation->execute();
$result = $query_check_room_occupation->fetchAll();
print_r($result);
if( count($result) > 0 ){
if( $result['from_time'] >= $from_time(input) && $result['to_time'] <= $to_time(input) ){
echo "<h1>überschneidung der zeiten</h1>";
}
}
else{
echo "do something else";
}
}
}
oder wie mache ich die abfrage so, dass ich die input values mit den existierenden Feldern vergleichen kann?
danke für euer hilfe
ps: die selection der zeit ist abhängig vom $datum (01.12.2014) und $room (eine nummer)
Kommentar