• 08-12-2017, 17:48:30
    #1
    Merhabalar arkadaşlar php dilinde yazmaya devam ettiğim bir randevu sistemi var fakat bir sorunum var,şöyleki forma saat tarih ekleyip bunları mysql kaydedip randevuyu görebiliyorum ama bunu daha dinamik hale nasıl getirebilirim.Mesela tarihe göre belli saatler gelip saatlerin randevuya müsait yada müsait olmadığı sorgulansın randevu ona göre alınsın.Umarım açıklayıcı anlatabilmişimdir,şimdiden teşekkürler selamlar herkese..
    Aşağıda örnek olark verdiğim bir tablo mevcut.

  • 08-12-2017, 18:17:20
    #2
    veritabanından kaydettiğin randevuları kontrol edeceksin , eğer daha önce o tarih ve saate dair kayıt var ise seçtirmeyeceksin.
  • 08-12-2017, 18:22:32
    #3
    FaTe adlı üyeden alıntı: mesajı görüntüle
    veritabanından kaydettiğin randevuları kontrol edeceksin , eğer daha önce o tarih ve saate dair kayıt var ise seçtirmeyeceksin.
    Öncelikle teşekkür ederim cevabınız için,ama söylediğiniz şeyi zaten biliyorum ama en azından mysqlde nasıl bir tablo yapısı kurmalıyım hergün bu sorgu tarihe göre değişiek sonuçta biraz daha detaylı bilgiye ihtiyacım var selamlar..
  • 08-12-2017, 18:24:56
    #4
    Kayıt yaptığın tabloyu paylaşır isen daha sağlıklı fikirler verebiliriz.
  • 08-12-2017, 18:31:49
    #5
    FaTe adlı üyeden alıntı: mesajı görüntüle
    Kayıt yaptığın tabloyu paylaşır isen daha sağlıklı fikirler verebiliriz.
    Böyle bir tablo yok çalışması için nasıl bir tablo yapısı kurabilrim.Mesela tarih_id, tarih, saat , dolu_tarih , dolu_saat , tarih_sıra gibi gibi..Bunlarla yada buna ek kolonlarla ilişikilendirip sorguları nasıl alabilrim.Yani ziyaretçi saat 10:00 da randevu almaya kalktığında müsait değil başka saat seçmeli örneğin yani.
  • 08-12-2017, 18:42:25
    #6
    İlk mesajında
    Alıntı
    şöyleki forma saat tarih ekleyip bunları mysql kaydedip randevuyu görebiliyorum
    yazmışsın bunu soruyorum
    yapacağın işlem basit aslında ,
    Kullanıcının önüne çıkacak olan seninde görselini paylaştığın alanı php ile ekrana bas , veritabanında kayıtlı olan randevuların tarihlerini datetime olarak tut.
    bunu ekrana basarken kayıt ettiğin tabloda bu tarih ve saate denk gelen satır var mı yok mu kontrol et , yok ise seçilebilir var ise seçilemez yap.
    Birşeyler yapmaya çalış sonra kodlarını paylaş daha kolay yardımcı olabiliriz o zaman.
  • 08-12-2017, 22:34:25
    #7
    FaTe adlı üyeden alıntı: mesajı görüntüle
    İlk mesajında

    yazmışsın bunu soruyorum
    yapacağın işlem basit aslında ,
    Kullanıcının önüne çıkacak olan seninde görselini paylaştığın alanı php ile ekrana bas , veritabanında kayıtlı olan randevuların tarihlerini datetime olarak tut.
    bunu ekrana basarken kayıt ettiğin tabloda bu tarih ve saate denk gelen satır var mı yok mu kontrol et , yok ise seçilebilir var ise seçilemez yap.
    Birşeyler yapmaya çalış sonra kodlarını paylaş daha kolay yardımcı olabiliriz o zaman.
    Zahmet olmazsa bunu kodlayarak gösterebilirmisiniz ?

    <?php 
    ob_start();   
    include 'baglan.php';
    if (isset($_POST['randevual'])) {  
    
        $kaydet=$db->prepare("INSERT INTO  randevular SET 
        
            randevu_adsoyad=:adsoyad,
            randevu_cep=:cep,
            randevu_eposta=:eposta,
            randevu_plaka=:plaka,
            randevu_tarih=:tarih,
            randevu_saat=:saat,
            randevu_aciklama=:aciklama
            ");
        $insert=$kaydet->execute(array(
            'adsoyad' => $_POST ['randevu_adsoyad'],
            'cep' => $_POST ['randevu_cep'],
            'eposta' => $_POST ['randevu_eposta'],
            'plaka' => $_POST ['randevu_plaka'],
            'tarih' => $_POST ['randevu_tarih'],
            'saat' => $_POST ['randevu_saat'],
            'aciklama' => $_POST ['randevu_aciklama']        
        ));
    if ($insert) {
            Header("Location:../randevular.php?durum=ok");
        }else{
            Header("Location:tamam.php?durum=no");
    
        }
    }
    ?>
  • 09-12-2017, 00:13:54
    #8
    Anladığım kadarıyla ilk mesajındaki resim yapmak istediğin daha henüz o bölümü yapmamışsın.
    Saatler bölümün değişmiyor ise yani hergün aynı ise bunu döngüye sokarak yapabilirsin. Döngüde de her saat için veritabanından bunu kontrol edersin.
    Saat ve tarih için ayrı sutun açmana gerek yok bence , olmasında sakınca yok ama sorgular iken o zaman tarih ve saat ikisinide eşleştirmen gerekiyor.
    Genel manasıyla şöyle birşey işini görebilir kendine göre değişiklik yapıp geliştirsin.
    <?php 
    $randevu_baslangic = '2017-12-09 12:00:00';
    $randevu_bitis        = '2017-12-09 13:00:00';
    while($randevu_baslangic <= $randevu_bitis){
        
        $randevu_baslangic = date("Y-m-d H:i:s",strtotime($randevu_baslangic." +10 minutes"));
        $sql = "SELECT COUNT(*) FROM randevular WHERE randevu_tarih = '$randevu_baslangic' limit 1"; // veritabanında bu tarih ve saat ile satır var mı onu kontrol ediyoruz 
        // randevu_tarih sütünu datetime tipinde
        if ($res = $conn->query($sql)) {
            
            if ($res->fetchColumn() > 0) { 
                echo $randevu_baslangic;// seçilemez zaten randevu var
            }else{  
                echo $randevu_baslangic;// seçilebilir randevu yok
            }
            
        }    
        
        
    }
    ?>
  • 09-12-2017, 00:51:05
    #9
    Şimdi daha aydınlatıcı oldu teşekkürler..