Merhaba Webkolog takipçileri, bugün sizlere web sitelerinizde özel günlerde, bayramlarda veya belirli zaman aralıklarında otomatik olarak duyuru göstermenizi sağlayacak oldukça pratik bir PHP ve MySQL dinamik sorgu yapısından bahsedeceğim.
Web projelerimizde 23 Nisan Ulusal Egemenlik ve Çocuk Bayramı, Yerli Malı Haftası veya Ramazan Bayramı gibi belirli dönemsel etkinliklerde ziyaretçilerimizi karşılayacak özel bildirimler ya da kutlama mesajları yayınlamak isteyebiliriz. Bunları her yıl manuel olarak ekleyip kaldırmak yerine, veritabanı seviyesinde dinamik bir tarih kontrolüyle otomatikleştirmek zaman açısından büyük bir kolaylık sağlar.
Aşağıda paylaştığım SQL sorgusu; sabit iki tarih arasındaki aralıkları, her yılın belirli bir ay ve gününü, ayın belirli bir haftasının belirli gününü veya belirli bir gün süren dönemsel etkinlikleri tek bir yapı üzerinden filtrelememize olanak tanıyor:
SELECT icerik
FROM duyurular
WHERE
tarih_bas <= '$tarih_simdi' AND tarih_bit >= '$tarih_simdi' OR
ay = '$ay' AND ay_gun = '$gun' OR
ay = '$ay' AND ay_hafta = '$ay_hafta' AND hafta_gun = '$hafta_gun' OR
DATE_FORMAT(DATE_ADD(date(CONCAT('2016-',ay,'-',ay_gun)), INTERVAL kac_gun-1 DAY), '%m-%d') = '$aygun'
ORDER BY oncelik DESC
Bu Sorgu Mantığı Nasıl Çalışır?
Sorgumuz farklı senaryoları kapsayacak biçimde esnek koşullara sahiptir:
1. Tarih Aralığı Kontrolü: Belirli iki tarih arasında (örneğin 10-20 Mayıs tarihleri arasında) yayında kalacak süreli duyurular içindir.
2. Sabit Yıllık Özel Günler: Her yıl aynı tarihte tekrarlanan günler içindir (örneğin 23 Nisan veya 29 Ekim gibi fixed tarihler).
3. Göreli / Haftalık Özel Günler: Ayın kaçıncı haftasına ve hangi gününe denk geldiği değişen dinamik takvim etkinlikleri için kullanılır.
4. Çoklu Gün Süren Etkinlikler: Başlangıç tarihinden itibaren örneğin 3 veya 7 gün süren etkinlik aralıklarını dinamik olarak hesaplar.
5. Öncelik Sıralaması (ORDER BY): Birden fazla aktif duyuru çakıştığında, belirlediğiniz öncelik puanına göre en önemli olanın ilk sırada gelmesini sağlar.
Bu yapıyı projelerinize entegre ederek duyuru yönetimini tamamen otomatize edebilir, sitenizin güncelliğini zahmetsizce koruyabilirsiniz. Umarım backend geliştirmelerinizde işinize yarayan faydalı bir ipucu olmuştur.
Hepinize sağlıklı, mutlu ve huzurlu günler dilerim!
Webkolog'u takipte kalın!
Hiç yorum yok:
Yorum Gönder