Im bir toplantı salonu rezervasyon sistemi üzerinde çalışıyor ve bir oda kümesi süre içinde alınırsa ben sorun endam yaşıyorum, ben tarihler için geçerli biçimi kullanıyorum ve tip tabloda DATETIME
için belirledik: YYYY-MM-DD HH:II:SS
Zaman çerçevesi içinde bir rezervasyon olup olmadığını nasıl kontrol edebilirim?
Bu benim şimdiki kodudur: sql sorgusunda bunu yapmanın bir yolu
//Function to check if a booking exists:
function bookingExist($DateStart, $DateEnd, $RoomNo) {
global $DB;
$sql = "SELECT * FROM bookings WHERE date_start = :dateStart AND date_end = :dateEnd AND room_no = :roomNo";
$Q = $DB->prepare($sql);
$Q->bindParam(':dateStart', $DateStart);
$Q->bindParam(':dateEnd', $DateEnd);
$Q->bindParam(':roomNo', $RoomNo);
$Q->execute();
if ($Q->rowCount()) {
//A record exists...
return true;
} else {
//no record exists
return false;
}
}
var mı?
örnek: Room A, 2016-03-31 15:00:00 ve 2016-03-31 17:30:00 saatleri arasında rezerve edildi. Ardından, 2016-03-31 için oda A için yeni bir rezervasyon oluşturmaya çalışın 16 : 30: 00 - 2016-03-31 17:00:00 ve thsi bir kayıt olduğu için 1 kayıt döndürmelidir
ve zaman A ile tarih ve zaman B. Eğer öyleyse Yeni zaman diliminizin başlangıcı veya bitişi A ve B arasındadır. SQL'de ihtiyacınız olan bu mu? – Renan
@Renan burada bir örnektir: Oda A, 2016-03-31 15:00:00 ve 2016-03-31 17:30:00 arası Kullanıcı tarafından rezerve edildi, daha sonra 2016 için oda için yeni bir rezervasyon oluşturmaya çalışıyor -03-31 16:30:00 - 2016-03-31 17:00:00 ve thsi bir kayıt olduğu için 1 rekor getirmelidir –
Güncellenmiş cevabımı görün. –