Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Veritabanından 2 Tarih Arasındaki Verileri Çekme

Konu, 'PHP' kısmında SCuTZ tarafından paylaşıldı.

  1. SCuTZ

    SCuTZ Üye

    Kayıt:
    12 Şubat 2010
    Mesajlar:
    28
    Beğenilen Mesajlar:
    0
    Merhaba Php ile 2 tarih arasındaki verileri nasıl çekeriz,
    yalnız burada dikkat edilmesi gereken bir nokta var ;

    Veritabanında tarihler 3 field halinde bulunuyor yani,
    gun, ay, yil ayrı alanlarda bulunuyor.

    gun Integer 2
    ay Integer 2
    yil Integer 4



    mesela;
    20.12.2011 ile
    10.01.2012 tarihleri arasındaki verileri nasıl çekeriz.



    *** gun-ay-yil aynı alanlarda olsaydı baya bi örnek var ama VT yapısı gereği her bir hane için ayrı bir alan açılmış.
     
  2. cgelis

    cgelis Aktif Üye

    Kayıt:
    28 Aralık 2011
    Mesajlar:
    424
    Beğenilen Mesajlar:
    0
    Meslek:
    Yazılım Mühendisi
    Şehir:
    İstanbul
    SELECT * FROM veriler WHERE gun BETWEEN 1 and 2 AND ay BETWEEN 10 and 12 AND yil BETWEEN 2011 and 2011
    Ne kadar doğru sonuç verir bilemem. Tarihleri tek colonda DATE formatında veya INT olarak timestamp olarak tutmak her zaman daha sağlıklı.
     
  3. SCuTZ

    SCuTZ Üye

    Kayıt:
    12 Şubat 2010
    Mesajlar:
    28
    Beğenilen Mesajlar:
    0
    SELECT * FROM veriler WHERE gun BETWEEN 1 and 2 AND ay BETWEEN 10 and 12 AND yil BETWEEN 2011 and 2011

    şeklinde olduğu zaman between dışındaki "and" operatörü diğerlerini de bağlıyor.

    mesela

    başlangıç tarihindeki gün, bitiş tarihindeki günden büyükse örn: başlangıç günü 20, bitiş günü diğer ayın 10'u bu durumda ayın 20 sinden sonraki ama 10 undan öncekileri getirmesi lazım bu durumda between sağlıklı çalışmıyor.



     
  4. rumedya

    rumedya Yeni Üye

    Kayıt:
    17 Şubat 2012
    Mesajlar:
    7
    Beğenilen Mesajlar:
    0
    Benim de bu konuda yardıma ihtiyacım var.

    3 adet değişkenim var
    PHP:
    $musteri $ilktarih $sontarih
    bir de aşağıdaki tablom
    idtarihmusteriaciklamaborcalacak
    101.01.20121fsfsdfsdfs10
    202.01.20122sdfsdfsdf20
    302.02.20121sdfsdfsdf25
    402.06.20121sdfsdfsdf30

    aşağıdaki kod ile tüm müşterilerin belirli tarih aralığını alıyorum.

    PHP:
    mysql_query("SELECT * FROM tablo where tarih between '$ilktarih' AND '$sontarih' ORDER BY tarih asc");
    Peki sadece 1 numaralı müşterinin $ilktarih ile $sontarih arasındaki işlemlerini listelemek istersem nasıl bir yol izlemeliyim?
     
  5. Slothere

    Slothere Daimi Üye

    Kayıt:
    24 Nisan 2010
    Mesajlar:
    813
    Beğenilen Mesajlar:
    0
    SELECT * FROM tablo where tarih between '$ilktarih' AND '$sontarih' and id=1 ORDER BY tarih asc
     
  6. rumedya

    rumedya Yeni Üye

    Kayıt:
    17 Şubat 2012
    Mesajlar:
    7
    Beğenilen Mesajlar:
    0
    Öncelikle yardımın için çok teşekkür ederim.
    Bunu denemiştim, olmamıştı sende aynı kodu yazınca başka bir yerde problem olduğunu anladım. Sorun çözüldü.
     
  7. rumedya

    rumedya Yeni Üye

    Kayıt:
    17 Şubat 2012
    Mesajlar:
    7
    Beğenilen Mesajlar:
    0
    Kodda bir hata var gözden kaçırmışız.

    PHP:
    SELECT FROM tablo where tarih between '$ilktarih' AND '$sontarih' and id=1 ORDER BY tarih asc
    Bu kodu kullanırsak id=1 karşısındaki işlem gelir oysa biz 1 numaralı müşterinin kayıtlarını istiyoruz buna göre kodumuz aşağıdaki şekilde olmalı ;)

    PHP:
    SELECT FROM tablo where tarih between '$ilktarih' AND '$sontarih' and musteri='$musteri' ORDER BY tarih asc
     
  8. vkk

    vkk Yeni Üye

    Kayıt:
    27 Temmuz 2017
    Mesajlar:
    2
    Beğenilen Mesajlar:
    0
    Şehir:
    ankara
    s.a ya burda sorgu yapıyoruzda lakin php hep sıkıntı oluyor ilk tarih ile son tarih hiç tanimıyor