• 20-04-2016, 21:25:27
    #1
    Merhabalar.
    Normalde kolaya kaçmayı sevmem, hızlı bir şekilde PHP öğreniyorum fakat henüz veritabanı konularına gelemedim ve şu an yayında olan bir projemizde bazı değişiklikler yapıyorum. Bu yüzden bu defa oturup öğrenmek yerine bir bilene sorup zaman kazanmak istedim affınıza sığınarak.

    Sorum şu:
    Aşağıdaki kod bir üyeye ait son 10 mesajın başlığını (linkini) sıralıyor.
    Bu verileri baz alarak;

    - O üyeye ait toplam mesaj sayısını
    - Bugün içinde yazdıkların toplamını
    - Son bir hafta ve son bir ay içinde yazdıklarının toplamlarını

    ekrana nasıl yazdırabilirim?
    Şimdiden teşekkürler.

    											<?php 
    												$list = DB::query("SELECT e.id, h.title FROM entries as e, heads as h WHERE e.u_id=$who->id and h.id=e.h_id ORDER BY id DESC LIMIT 0,10"); 
    												foreach($list as $item){ echo '<li><a href="entry/'.$item->id.'">#'.$item->title.'</a></li>'; }
    											?>
  • 26-04-2016, 01:07:40
    #2
    toplam mesaj sayısını sql count() fonksiyonu ile alabilirsiniz, bugün, son bir hafta ve son bir ay gibi tarih ve/veya zaman damgası isteyen durumlarda ise veritabanında eklenme tarihi ile ilgili bir sütun olmalı ve (tavsiyem) bu sütun timestamp türünde olmalı (ya da varchar olarak varsayılan değer için yine sqlin now() fonksiyonu kullanılabilir, bu haldeyken insert komutu ile herhangi bir tarih değeri girilmemeli ki otomatik olarak o anın zaman damgasıalınabilsin) bu sayede saniye üzerinden gün hesabı yapıp sql sorgunuzda WHERE kısmına and (şu tarihten sonra anlamında bir >= operatörü) daha ekleyerek işinizi çözebilirsiniz.