Bu tarz bir mantikla o zaman araliginda cakisan randevu var mi kontrol edebilirsin. Kodda ufak hatalar olabilir direk buradan yazdim kontrol etmeden. Ancak mantigini anlamana yardimi olur diye dusunuyorum. Kolay gelsin.
NOT: Veritabani id sifre gibi hassas veriler iceren kodlari hicbir zaman public_html, www ya da htdocs gibi herkesin okuma izni olan dizinlerde tutmayin. Misafirlerin okuma izni olmayan ayri bir yolda ayri bir dosyada saklayin.
[CODE lang="php" title="cakisan randevu"]<?php
function veritabaninaBaglan()
{
try {
return new PDO('mysql:dbname=testdb;host=127.0.0.1', 'veritabani_kullanici_adi', 'veritabani_sifre');
} catch (Throwable $th) {
return false;
}
}
function cakisanRandevuVarMi($yeni_randevu_baslangic, $yeni_randevu_bitis)
{
$veritabani = veritabaninaBaglan();
if (!$veritabani) {
echo "HATA: Veritabanina baglanilamadi.";
exit;
}
$sql = 'SELECT COUNT(*) FROM randevular_tablosu WHERE baslangic < :yeni_randevu_bitis AND bitis > :yeni_randevu_baslangic';
$sorgu = $veritabani->prepare($sql);
$sorgu->bindValue(':yeni_randevu_baslangic', $yeni_randevu_baslangic, PDO:
ARAM_STR);
$sorgu->bindValue(':yeni_randevu_bitis', $yeni_randevu_bitis, PDO:
ARAM_STR);
$sorgu->setFetchMode(PDO::FETCH_NUM);
$sorgu->execute();
$cakisan_randevu_sayisi = $sorgu->fetch()[0];
return $cakisan_randevu_sayisi > 0;
}
[/CODE]