AccessTr.neT

Tam Versiyon: Randevu Saatlerinin Dolu Boş Olarak Gösterilmesi Hakkında
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
Kolay gelsin php web programlamayı yeni kullanmaya başladım mysql sunucumuzu Access ve php web sayfası ile ortak kullanıyoruz.Sistem servis otomasyonu ile ilgili verilen servis randevularının web sayfasında o saatin dolu veya boş olduğunu görüntülenmesi üzerine aşağıdaki gibi derleme yaptım

PHP Kod:
<?php 
$personel 
$_SESSION['ekp'];
$count=1;
$randevuTarih=date("Y-m-d");

$sel_query="Select * from zaman ORDER BY saat ASC";
$result mysqli_query($con,$sel_query);
while(
$row mysqli_fetch_assoc($result)) { 
     
 
        $sel_queryrandevu
="Select * from randevuzaman WHERE ekip = $personel and tarih = $randevuTarih and saatid='".$row[saatid]."'";
        
$resultrandevu mysqli_query($con,$sel_queryrandevu);
        
$row_randevu mysqli_fetch_assoc($resultrandevu)
        

?>

  <article class="underline">
            <H1><div class="date"><?php echo $count?>. Randevu Saat : <span><?php $rsaat date_create($row["saat"]);  $rsaat1 date_format($rsaat,"H:i:s"); echo $rsaat1?></span></div></H1>
            <h3>Adı Soyadı : <?php echo $row_randevu ["adisoyadi"]; ?></h3>
    </article>
    
<?php 

$count
++; } 
?>



ama zaman tablosundan çekilen randevu saatleri düzgün dökülülüyor randevuzaman tablosunda o saatte bulunan kayıtlar ise boş dönüyor.Yapmak istediğim zaman tablosunda bulunan ön tanımlı 07:00:00 ile 22:00:00 arasında 30 dakika aralı verilerin tamamını dökmek randevuzaman içinde bulunan ve zaman tablosundaki saatidlerine eşit olan veriyi o saatin karşısına yazdırmak boş olan saatler Null olarak dönebilir.Konu ile ilgili değerli yardımlarınızı rica ederim.
Tablo ve çalışma mantığınızı bilemediğimiz için cevap vermek zor. Biraz daha detay verirseniz memnun oluruz.
iki adet tablomuz var zaman
[Resim: do.php?imgf=150418548918961.bmp]
ve randevuzaman
[Resim: do.php?imgf=150418549041172.bmp]

Zaman  tablosunda bulunan saat ve kayıt tablosunda bulunan  saat join ile birleştirilerek randevuzaman sorgusunu oluşturdu.Şimdi zaman tablosunda bulunan saat dilimlerinde randevuzaman içinde tarih ekip ve saatid eşlemesi olan dilimlere kayıtID gelsin boş olan dilimler saatler yazsın kayitID Boş dönsün yapmaya çalıştığım bu ben tablo ile zaman dilimlerini alabilirim diye düşündüm ama aşağıdaki kodla saat dilimleri getirebiliyor.Yöntem çok önemli değil saat dilimleri arasında dolu olan saatler dolu boş olan saatleri boş göstermek istiyorum.

Kod:
<?php

      $personel = $_SESSION['ekp'];
    $randevuTarih=date("Y-m-d");
    echo "$randevuTarih <br>";
    echo "$personel <br>";
    $rv='';
    
    $baslangic = "09:00:00";
    $baslangic = strtotime($baslangic);

    

    $bitis = "22:30:00";
    $bitis = strtotime($bitis);

while (intval($baslangic)<intval($bitis)){
$sel_query="Select * from kayit WHERE ekip='$personel' and tarih='$randevuTarih' and saat='".date("H:i:s",$baslangic)."'";
$result = mysqli_query($con,$sel_query);
echo mysqli_num_rows($result);
while($row = mysqli_fetch_assoc($result)) {

    echo date("H:i:s",$baslangic).'<br>';
    $baslangic = strtotime("+30 minute", $baslangic);

    }
}

?>
İşi zorlaştırmışsınız gibi gözüküyor. İlk tablo ile ikinciyi birleştirmenize gerek olduğunu düşünmüyorum. İlk tablodaki saatleri kullanıcıya gösterin ancak ikinci tablo yani randevuzaman tablosuna Id değil tarih ve saati kaydedin. İllaki Join yapacağım derseniz şimdi Kütahya'ya yola çıkıyorum akşama ya da 1-2 gün sonraya başka bir yöntem önereceğim.
Abi join kullanmamiz sart degil mesajinizi takip edecegim hayirli yolculuklar dilerim bayraminiz kutlu mubarek olsun
PHP Kod:
<?php
$personel 
$_SESSION['ekp'];
$count=1;
$randevuTarih=date("Y-m-d");    

echo 
$personel."<br>";
echo 
$randevuTarih."<br>";

    
$sel_query="Select * from randevuzaman WHERE ekip = $personel and tarih like '%$randevuTarih%'";
    
$result mysqli_query($con,$sel_query);
    while(
$row mysqli_fetch_assoc($result)) {    

    
$baslangic "08:30:00";
    
$baslangic strtotime($baslangic);
    
    
$bitis "22:00:00";
    
$bitis strtotime($bitis);
 
   $aranan "11:30:00";
    
$aranan strtotime($aranan);

    while (
intval($baslangic)<intval($bitis)){
    
    
    
    
$baslangic strtotime("+30 minute"$baslangic);
    
$rsaat date_create($row["saat"]);  $rsaat1 date_format($rsaat,"H:i:s");$aranan strtotime($rsaat1);
    echo 
date("H:i:s",$baslangic); if($baslangic == $aranan){echo " Randevu Var";}echo "<br>";
    
    }
}
?>
Bu şekilde yapınca tabloda eşleşen kadar döngü dönüyor.Veri tabanından gelen döngüyü saatin döngüsü içine koyduğumda ilk bulduğu değer tek dönüyor.
Sayfalar: 1 2