lostyazilim
tr.link

Veritabanındaki tarih aralığını kontrol etme

8 Mesajlar 1.002 Okunma
acebozum
tr.link

Exor Exor WM Aracı Kullanıcı
  • Üyelik 07.11.2013
  • Yaş/Cinsiyet 38 / E
  • Meslek Web&Grafik Tasarım
  • Konum Samsun
  • Ad Soyad B** B**
  • Mesajlar 169
  • Beğeniler 16 / 7
  • Ticaret 0, (%0)
Merhaba
PDO ile veritabanında bulunan iki adet alanın aralığını kontrol ederek bu aralarda yeni veri girişi yapmak istemiyorum.

Bir kiralama sistemi yapıyorum. Bu kiralama sisteminde aynı ürünü kiralanmış tarihler arasında tekrar kiralama yapılmasın diye engellemek istiyorum.

Kira Başlangıç Tarih değişkeni: $skalimtarihi
Kira Bitiş Tarih değişkeni: $skteslimtarihi

Bunu nasıl yapabilirim? Between ile denedim fakat sonuç alamıyorum. Çünkü between tek alanda kontrol yapıyor. Örneğin sadece kira başlangıç tarihinde kontrol yaptırabiliyorum. Bu da sorun yaratıyor.
Önerilerinizi hatta örnek kod paylaşımlarınızı (çok daha iyi olur) bekliyorum.

Şimdiden teşekkür ederim.
 

 

elektronikssl
webimgo

130793 130793 WM Aracı Anonim Üyelik
  • Üyelik 19.07.2021
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 238
  • Beğeniler 8 / 34
  • Ticaret 0, (%0)
durum diye bir değişken koy kiraladıgında durumu 1 yap kira süresi bittiginde 0 yap kiralama kodundada bir if koy eger de durum 1 se kiralama çalışmasın yok 0 sa çalışsın bitti gitti
 

 

130793 130793 WM Aracı Anonim Üyelik
  • Üyelik 19.07.2021
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 238
  • Beğeniler 8 / 34
  • Ticaret 0, (%0)
yada şöyle yap kiralama kodunun tepesine bir mysql sorgusu yaz git orda baktır eger kiralama tarihi daha gelmemişse kodu çalıştırma kiralama tarihi geçmişse kodu çalıştır beceremezsen team ver bakarız birlikte
 

 

Exor Exor WM Aracı Kullanıcı
  • Üyelik 07.11.2013
  • Yaş/Cinsiyet 38 / E
  • Meslek Web&Grafik Tasarım
  • Konum Samsun
  • Ad Soyad B** B**
  • Mesajlar 169
  • Beğeniler 16 / 7
  • Ticaret 0, (%0)

epine adlı üyeden alıntı

durum diye bir değişken koy kiraladıgında durumu 1 yap kira süresi bittiginde 0 yap kiralama kodundada bir if koy eger de durum 1 se kiralama çalışmasın yok 0 sa çalışsın bitti gitti


Sanırım yanlış anladınız. Bir örnek ile açıklamaya çalışayım.

12.08.2021 ile 16.08.2021 arasında "A" isimli ürünün "32" bedenini kiraya verdim diyelim.
Ayın 12si ile 16sı arasında bu ürünü "mysql BETWEEN" ile kontrol ettirip ürünün müsait olmadığını gösterebiliyorum fakat yeni kiralama da aynı ürünü 11.08.2021 ile 17.08.2021 olarak kiralamaya çalıştığımda yine kiralama işlemi yapıyor.
Normalde ürün 12si ile 16sı arası zaten kiralandı. 11i ile 17si arası kiralanması mümkün değil.
 

 

wmaraci
wmaraci

130793 130793 WM Aracı Anonim Üyelik
  • Üyelik 19.07.2021
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 238
  • Beğeniler 8 / 34
  • Ticaret 0, (%0)
kontrolünü şu şekilde degiştir yeni kiralama tarihi başlangıcı eski kiralama bitiş tarihinden buyukse kiralama yap değilse yapma

bu ne demektir...

24.08.2021 başlangıc
26.08.2021 bitiş


tekrar kiralamak istedim.
23.08.2021 -- buraya dikkat
29.08.2021 bitiş


buraya dikkat yazdıgım kısımı gotur ilk tablonun bitişinden buyukmu kücükmü ona baktır.

bu ne demektir.

ilk tablonun bitişi 26.08.2021 ikinci kiralamanın başlangıcı 23.08.2021 yani kücük ! kücükse yaptırma ama hayır 27.08.2021 ise büyük demektir o zaman yaptır
 

 

Xson Xson WM Aracı Kullanıcı
  • Üyelik 27.08.2021
  • Yaş/Cinsiyet 25 / E
  • Meslek Programcı
  • Konum Azerbeycan
  • Ad Soyad S** A**
  • Mesajlar 76
  • Beğeniler 12 / 11
  • Ticaret 0, (%0)
Yanlış düşünüyorsun kardeşim eğer öyle yaparsan mesela bugün 10 u 20-23 ü kiralık ve ben öncesinde kiralamak istesem yani 12-15 i yapmak istesem bu mantıkla kiralamayacak. Böyle bir sorgu yap select * from kiralar WHERE tarih $baslangic between $son
Daha sonra if rowcount diye sorgula bu tarih araliginda bir veri cikarsa o zaman kiralama basarisiz cikmazsa kiralasin bundan mantikli cozum yok bence
 

 

Exor Exor WM Aracı Kullanıcı
  • Üyelik 07.11.2013
  • Yaş/Cinsiyet 38 / E
  • Meslek Web&Grafik Tasarım
  • Konum Samsun
  • Ad Soyad B** B**
  • Mesajlar 169
  • Beğeniler 16 / 7
  • Ticaret 0, (%0)

epine adlı üyeden alıntı

kontrolünü şu şekilde degiştir yeni kiralama tarihi başlangıcı eski kiralama bitiş tarihinden buyukse kiralama yap değilse yapma

bu ne demektir...

24.08.2021 başlangıc
26.08.2021 bitiş


tekrar kiralamak istedim.
23.08.2021 -- buraya dikkat
29.08.2021 bitiş


buraya dikkat yazdıgım kısımı gotur ilk tablonun bitişinden buyukmu kücükmü ona baktır.

bu ne demektir.

ilk tablonun bitişi 26.08.2021 ikinci kiralamanın başlangıcı 23.08.2021 yani kücük ! kücükse yaptırma ama hayır 27.08.2021 ise büyük demektir o zaman yaptır


Epine; Xsonun dediği doğru böyle yaparsam bu tarih öncesinde alımları da kapamış olurum. Bu çözüm işime yaramaz yine de teşekkür ederim.

Xson sen diyorsun ki beetween ile iki tarih arasında ki girişleri saydır. Sıfırsa kiralama yaptır sıfırdan büyükse kiralamayı başarısız say. Evet bu mantıklı olabilir deneyeceğim teşekkür ederim.
Xson

kişi bu mesajı beğendi.

130793 130793 WM Aracı Anonim Üyelik
  • Üyelik 19.07.2021
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 238
  • Beğeniler 8 / 34
  • Ticaret 0, (%0)
abi sen aralıklı kiralatıyorsan iş daha basit ben hafta hafta kiralıyor sandım o zaman kiralanan günleri tek tek gir misal 20 ile 25 i arası kiraladı sen db ye 20 21 22 23 24 diye gir sonra varmı yokmu kontrol et
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al