• 04-09-2012, 00:54:00
    #1
    Üyeliği durduruldu
    Merhaba.
    Aranızda yeniyim, Metin2 için hazırlamış olduğum bir scripte ufak bir problem var. Aslında uğraşsam çözebilirdim ama elimdeki sunucunun süresi bitince daha uğraşamadım. Problemim;
    Bu script oyun içindeki pazarın süreli hali, yani bir itemi satışa koyarken bir süre belirtiyorsunuz o süre dolunca item pazardan kalkıyor. Her şey hazır ama itemi süre bitince pazardan kaldırmayı yapamadım.

    if ($ssaat <= date("H")){
    if ($sgun <= date("d")) {
    if ($say == date("m")) {
    if ($syil == date("Y")) {...
    Son kullandığım kod buydu.Satırlar isimlerinden belli zaten "sgun = gün" "ssay = ay" bunlar veritabanında kayıtlı. Site tarihi ve saati kontrol edip eğer zamanı geldiyse itemi silmesi gerekiyor.
    Yerlerini değiştirmeyi denedim, tek tek sorguyu denedim, çoklu sorgu denedim, tarih eklemeyi 4-5 şekilde farklı kodlarda yapıp uyumlu yapmayı denedim ama sonuç negatif.

    "getdate" deneyecektim ama işlem yarım kaldığı için deneyemedim. Bu scriptin hiç bir önemi yok, siz neden uğraştırdın demeden bildiriyim. Amacım başaramadığım bir şeyin doğrusunu öğrenmek. Bilgili arkadaşlardan yardım bekliyorum.

    Not: Sistem için elinde test sunucusu olan veya sunucu sağlayabilecek kişiler pm atabilir. Scripti tamamlayıp ücretsiz verebilirim, dağıtmamak koşuluyla !
    Kısaca; itemi belirlediğiniz bir süre için (max. süre ayarlanabilir, şuan 48 saat) satışa koyabilir, çevrimdışı satış yapabilir. İtem hemen alınabilir veya teklif verilebilir. Teklif veren kişiden ücret alınır, item süresi bitene kadar para sistemde tutulur. Son tekliften daha yüksek bir teklif gelirse önceki teklifin sahibine para iade edilir, yeni teklif tabloya girilir. Süre bittiğinde son teklifi yapana item verilir, item sahibine para ödenir. Satıcı itemi kaldırabilir, bu durumda eğer teklif varsa teklif verenin parası iade edilir.Teklifte minimum sınır ayarlanabilir.
  • 04-09-2012, 18:59:16
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşım o kadar komplike yapmana gerek yok. Tarihleri veritabanına eklerken silinecek tarihi de eklersin datetime formatında veya timestamp olarak. Daha sonra hangi formatta eklediysen ona göre işlem yaptırırsın. Misal cron ayarlayıp

    delete from itemler where bitistarihi <= zamanformatına göre o an ki zaman
    veya sayfanda gösteriken select sorguna koşul eklersin. Sadece süresi bitmemişleri gösterirsin:
    select * from itemler where bitistarihi > zamanformatına göre o an ki zaman
    gibi. Hangisi senin için uygunsa
  • 04-09-2012, 19:28:42
    #3
    Üyeliği durduruldu
    Bence günlük kontrol et veritabanına yazarken NOW() yap (date olacak sütun tipi) sonra çek veritabanından if( $cek["syt"] == date("Y-m-d")) { mysql_query("DELETE FROM sales WHERE $cek[id]");}
  • 04-09-2012, 20:23:05
    #4
    Üyeliği durduruldu
    acayip adlı üyeden alıntı: mesajı görüntüle
    Arkadaşım o kadar komplike yapmana gerek yok. Tarihleri veritabanına eklerken silinecek tarihi de eklersin datetime formatında veya timestamp olarak. Daha sonra hangi formatta eklediysen ona göre işlem yaptırırsın. Misal cron ayarlayıp

    delete from itemler where bitistarihi <= zamanformatına göre o an ki zaman
    veya sayfanda gösteriken select sorguna koşul eklersin. Sadece süresi bitmemişleri gösterirsin:
    select * from itemler where bitistarihi > zamanformatına göre o an ki zaman
    gibi. Hangisi senin için uygunsa
    İyi ama bitistarihi sütununda ay - gün - yıl ve saati aynı anda yazamıyorum sorun orada zaten. Ya ay - gün - yıl olarak yada saat-dakika olarak kayıt ediliyor. Diğer türlü sürekli hata veriyor. Dakikayı yazdırmamam gerekiyor yani sadece saat kalmalı.




    WapZap adlı üyeden alıntı: mesajı görüntüle
    Bence günlük kontrol et veritabanına yazarken NOW() yap (date olacak sütun tipi) sonra çek veritabanından if( $cek["syt"] == date("Y-m-d")) { mysql_query("DELETE FROM sales WHERE $cek[id]");}
    Günlük değil sitede yapılan her tıkta kontrol ediyor. Aynı sistemi satıştan kaldırılan itemlerin pazar ekranından kalkması içinde kullanıyorum. Bu sayede satıcı itemi satıştan kaldırırken yapmış olduğu tıklarla güncellemiş oluyor. Günlük kontrol yapılırsa script kullanılamaz.


    Ve mysql_query kullanamam çünkü yukarıda yazdığım gibi item açık artırma sistemine bağlı o yüzden birden fazla query ve if bağlantısı var. İtemi satışa
    koyarken
    $ssaat = date("H");
    $sbit = $ssaat+$zaman;
    $sgun = date ("d");
    $syil = date ("Y");
    $say = date ("m");
    if ($sbit >= 24) {
    $sgun = $sgun+1;
    
    $itemver = "INSERT INTO satislar SET owner_id = '" . $hesapid . "', fiyat = '" . $fiyatim."', saat = '" . $sbit."', gun = '" . $sgun."', ay = '" . $say."', yil = '" . $syil."',
    şeklinde kayıt ettiriyorum.

    Cevaplar için sağolun. Cevap yazarken lütfen örnekleyerek yazınız.