Merhabalar, PHP ile şöyle bir sistem geliştiriyorum ;
Online rezervasyon uygulaması,sistem şöyle . Adını soyadını ,rezervasyon yapacağı masayı ve saatleri seçiyor takıldığım nokta müşteri saat 10 ile 13 arasını rezervasyon yaptırdı diyelim bir başkasının bu saatler arasına rezervasyon yapmasını nasıl engelleyebilirim.

soruldu: 12 Haz '14, 02:02

soloturk's gravatar image

soloturk
111125
cevap kabul oranı: 0%

değiştirildi: 12 Haz '14, 03:20

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183

şöyle de bir problem var; mesela 13:00 ile 18:00 saatleri arasında bir randevumuz var diyelim. bir başkası 14::00 ile 16:00 arasına alabiliyor, bugün sabah bir ara baktım bu işe... şimdi tekrar bakıyorum deneme aşamasında fark ettim hatayı

(13 Haz '14, 13:27) soloturk soloturk's gravatar image

Senin tablo yapın nasıl bilmiyorum ama şöyle bir çözüm var.

reservations:
id: int
user_id: int
start_time: datetime
finish_time: datetime

Yeni bir rezervasyon nasıl ekleriz? Şu sorgudan geriye hiçbirşey dönmezse rezervasyonu ekleyebiliriz:

SELECT id FROM reservations 
WHERE start_time BETWEEN ($newReservationStartTime, $newReservationFinishTime)
OR finish_time BETWEEN ($newReservationStartTime, $newReservationFinishTime)

Eğer bir sonuç dönerse iki ihtimal var. Ya yeni rezervasyonun başlangıç saati daha önceki herhangi bir rezervasyonun başlangıç ve bitiş saatleri arasında yada yeni rezervasyonun bitiş saati daha önceki herhangi bir rezervasyonun başlangıç yada bitiş saatleri arasında. Bu durumda kullanıcıya hata mesajı vermemiz gerekiyor. SQL'den dönen bilgi bize hangi rezervasyonla çakıştığını söyler.

Bu sorgu yavaş çalışırsa farklı bir yöntem izleyip VIEW'leri kullanmamız gerekebilir. Fakat en temel mantık bu. Mantığı yazarak anlatabilir miyim bilmiyorum bu yüzden bir fotoyla işi bitireceğim :) Takıldığın yerde sorarsın.

Rezervasyon Mantığı

permanent link

cevaplandı: 12 Haz '14, 20:12

kodmanyagha's gravatar image

kodmanyagha
3.1k132852
cevap kabul oranı: 15%

değiştirildi: 12 Haz '14, 20:16

Merhaba yardım için çok sağol. Mysql versiyonuyla ilgili küçük bir sıkıntı oldu ama küçük bir değişiklik ile gösterdiğin yoldan giderek hallettim. Tekrar dan teşekkürler.

(13 Haz '14, 04:09) soloturk soloturk's gravatar image

Şimdi farkettim. Bu mantıkta bir eksik var. Mesela adam 05-11 saatleri arasında rezervasyon yaptırmak isteyebilir o zaman 08-10 saatleri arasındaki rezervasyonla çakışır. Bu problemi de çözmek gerekir ama şuan vaktim yok. Başka biri bu problemi çözmezse ben akşam eve gelince çözmeye çalışırım.

(13 Haz '14, 06:55) kodmanyagha kodmanyagha's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×168

Soruldu: 12 Haz '14, 02:02

Görüntüleme: 1,098 kez

Son güncelleme: 13 Haz '14, 13:28

powered by BitNami OSQA