#Uygun Olmayan Kod
<?php
if ($kullanicidangelenbas>=$dbdengelenbas && $dbdengelenbitsaat<=$kullanicidangelenbit) {
echo "hata";
}
?>Yukarıdaki kod 21.00 ile 23.00 gelirsede hata verir,bu yüzden başka koda ihtiyacım var.
Algoritmayı Kuramadım
8
●524
- 23-11-2010, 20:59:18Merhaba bir mantık sorum olacaktı şimdi veritabanımda 2 alan var başlama ve bitiş saati diye şimdi diyelim veritabanından başlangıç saati olarak 18.00 bitiş saati olarak 20.00 geliyor,kullanıcıdanda başlama ve bitiş saati geliyor onlarda mesela 19.00 21.00 olsun şimdi ben kullanıcıdan gelen saat veritabanındaki saatin arasında kalıyor o zaman hata versin istiyorum arasında kalıyor derken şunu demek istedim, 18 de başlayan bir iş 20 de bitiyormuş veritabanında kullanıcı 19 ile 21 demiş bu saatler 18 ve 20 yide içine alıyor bu yüzden hata vermesi gerek ama kullanıcıdan 21.00 ile 23.00 gelirse veritabanına kaydetmem gerekiyor o yüzden aşağıda verdiğim kod iptal olmuş oluyor nasıl birşey yapabilirim ?
- 23-11-2010, 21:08:10Hangi aralıktan ama hocam ? 2 değerim var aralık yokCakirTurk adlı üyeden alıntı: mesajı görüntüle
- 23-11-2010, 22:04:07Kimlik doğrulama veya yönetimden onay bekliyor.Anladığım Kadarı ile
if(($KulGelBasSaat>=$SistemBasSaati && $KulGelBasSaat<=$SistemBitSaat) ||
($KulGelBitSaat<=$SistemBitSaati && $KulGelBitSaat>=$SistemBasSaat)) {
echo " Hata ";
}else {
echo " Normal İşlem ";
}
Sistem Bas Saati 19:00 Bit Saati 21:00 farzedelim.
Kullanıcıdan Gelebilecek 3 Farkli Olasılık Var Var.
1. Başlangic Saati Bizim Saatlerimizin Arasında olan ( 20:00 21:00 )
2. Bitiş Saati Bizim Saatlerimizin Arasında Olan ( 18:00 20:00 )
3. C Şıkkı Hiç Biri
Gelelim Koda ( Anladığını Düşünüyorum Ama birisinin de işine Yarar Belki )
Kırmızı Kısımda Eğer Kullanıcının Başlangıç Saati Bizim Başlangıç Saatimizden Büyük ve Bitiş Saatimizden Küçükse hata Ver ( 1. Olasılık )
|| ( Veya )
Yeşil Kısım İse Eğer Kullanıcın Bitiş Saati Bizim Bitiş Saatimizden Küçükse ve Başlangıç Saatimizden Büyükse Hata ver. ( 2. Olasılık )
Else ( Hiç Biri Değilse )
İşlemlere Devam et..
Umarım Anlatmak istedigini anlamışımdır. Kolay Gelsin.. - 24-11-2010, 15:02:21Hocam bu koda göre mesela sistemizdeRomansanta adlı üyeden alıntı: mesajı görüntüle
18.00 ile 19.00 arasında bir giriş olsun
19.00 ile 20.00 arasına veya 16.00 ile 18.00 arasına birşey girilmiyor
Edit:Hallettim arkadaşlar
- 24-11-2010, 22:17:40Yazdığın şekilde yapamazsın. Ancak şu şekilde olabilir.
Önce oyuncunun oyuna başlangıç saatini db e yazdırırsın. ör.
$baslangic = time(); doquery("UPDATE {{table}} SET baslangic='".$baslangic."' WHERE id='".$kullanıcı['id']."'","kullanıcı tablon");Bu oyuna başladığı zaman olur. Daha sonra 2 saat oynatmak istiyorsan bitiş süresini yazdırırsın db ye..
$ikisaat = 60*60*2; $bitis = $baslangic+$ikisaat; doquery("UPDATE {{table}} SET bitis='".$bitis."' WHERE id='".$kullanıcı['id']."'","kullanıcı tablon");Kullanıcının zamanı dolduğunda hata vermesini sağlamak içinde:
if ($bitis < time()) { //hata kodu } else { //diğer durumda çalışacak kod }şeklinde bir if ifadesi oluşturabilirsin. Hızlı hızlı yazdım hatam varsa affola.

