• 18-02-2010, 20:34:33
    #1
    Merhaba,bi sorum vardıda şimdi veri çekicem ama gün,hafta,ay a göre çekmem lazım bunun hazır bi kodu varmı yani illa eklendiği tarihi eklemeden çekme şansım varmı ?

    mesela

    select * from bilgi order by hit desc

    gibi bir kod tüm zamanların en çok hitleneni alıcak bunun günü,haftası vs. nasıl bulunur ?
  • 18-02-2010, 20:40:52
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    hocam ekleme tarihine gerek var sanırım. o olmazsa neye göre sorgu yapılcak bende bilmiyorum.

    şayet ki eklenme tarihi mevcutsa gün-hafta-ay falan olarak forumda daha önce paylaşılmıştı kodlar. Tekrar yazıyım ben buraya:

    SELECT * FROM tablo WHERE tarih >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH) ORDER BY hit DESC
    DATE_SUB(CURDATE(), INTERVAL 1 MONTH) bu kısmı değiştirip değişik şartlara göre veri alabilirsiniz. Örnekler:

    DATE_SUB(curdate(), INTERVAL 1 MICROSECOND)
    DATE_SUB(curdate(), INTERVAL 1 MINUTE)
    DATE_SUB(curdate(), INTERVAL 1 HOUR)
    DATE_SUB(curdate(), INTERVAL 1 DAY)
    DATE_SUB(curdate(), INTERVAL 1 WEEK)
    DATE_SUB(curdate(), INTERVAL 1 MONTH)	
    DATE_SUB(curdate(), INTERVAL 1 QUARTER)
    DATE_SUB(curdate(), INTERVAL 1 YEAR)
    İnş işinizi görür hocam.

    Kolay gelsin.
  • 19-02-2010, 11:33:44
    #3
    _BuKi_ adlı üyeden alıntı: mesajı görüntüle
    hocam ekleme tarihine gerek var sanırım. o olmazsa neye göre sorgu yapılcak bende bilmiyorum.

    şayet ki eklenme tarihi mevcutsa gün-hafta-ay falan olarak forumda daha önce paylaşılmıştı kodlar. Tekrar yazıyım ben buraya:

    SELECT * FROM tablo WHERE tarih >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH) ORDER BY hit DESC
    DATE_SUB(CURDATE(), INTERVAL 1 MONTH) bu kısmı değiştirip değişik şartlara göre veri alabilirsiniz. Örnekler:

    DATE_SUB(curdate(), INTERVAL 1 MICROSECOND)
    DATE_SUB(curdate(), INTERVAL 1 MINUTE)
    DATE_SUB(curdate(), INTERVAL 1 HOUR)
    DATE_SUB(curdate(), INTERVAL 1 DAY)
    DATE_SUB(curdate(), INTERVAL 1 WEEK)
    DATE_SUB(curdate(), INTERVAL 1 MONTH)	
    DATE_SUB(curdate(), INTERVAL 1 QUARTER)
    DATE_SUB(curdate(), INTERVAL 1 YEAR)
    İnş işinizi görür hocam.

    Kolay gelsin.
    Çok sağol hocam peki süreyi hangi formatta kaydetmemiz gerek veritabanına bunu kullanırken ? yani hangi fonksiyon date var time var vs. gbi
  • 19-02-2010, 13:21:12
    #4
    Senin istediğin eklenme tarihi ile ilgili değil. Sanırım sen son 1 haftada ya da son 1 ayda en çok hit alan içeriğini bulmak istiyorsun. Eklenme tarihi 1 sene önce olan bir içerik son haftada en çok hiti almış olabilir. O yüzden hit değerinin hesaplandığı bir tablo oluşturman lazım. Bu tabloda icerik_id, tarih (gun-ay-yil yeterli) ve hit bilgisi sütunları olacak. O gün o içeriğe gelen tüm hitler bu tablodaki ilgili satırın hit değerini artıracak.

    Sen son 1 haftada en çok hit alanı bulmak için hit tablonla içerik tablonu birleştirip son 1 haftadan büyük olan koşulla sorgunu yapacaksın.
  • 19-02-2010, 15:16:44
    #5
    _BuKi_ adlı üyeden alıntı: mesajı görüntüle
    hocam ekleme tarihine gerek var sanırım. o olmazsa neye göre sorgu yapılcak bende bilmiyorum.

    şayet ki eklenme tarihi mevcutsa gün-hafta-ay falan olarak forumda daha önce paylaşılmıştı kodlar. Tekrar yazıyım ben buraya:

    SELECT * FROM tablo WHERE tarih >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH) ORDER BY hit DESC
    DATE_SUB(CURDATE(), INTERVAL 1 MONTH) bu kısmı değiştirip değişik şartlara göre veri alabilirsiniz. Örnekler:

    DATE_SUB(curdate(), INTERVAL 1 MICROSECOND)
    DATE_SUB(curdate(), INTERVAL 1 MINUTE)
    DATE_SUB(curdate(), INTERVAL 1 HOUR)
    DATE_SUB(curdate(), INTERVAL 1 DAY)
    DATE_SUB(curdate(), INTERVAL 1 WEEK)
    DATE_SUB(curdate(), INTERVAL 1 MONTH)	
    DATE_SUB(curdate(), INTERVAL 1 QUARTER)
    DATE_SUB(curdate(), INTERVAL 1 YEAR)
    İnş işinizi görür hocam.

    Kolay gelsin.
    Bu kodda diyelim 1 MONTHı kullandın. Son bir hafta içerisinde eklenen içerikler arasında en çok hit alanları gösterir. Diyelim iki ay önce eklenen bir içerik bu hafta hit almışsa onu göstermez.

    Düzenleme: Aykut da söylemiş zaten.
  • 19-02-2010, 15:28:07
    #6
    Üyeliği durduruldu
    hiti ayrı bir tabloda tutman lazım