• 20-09-2009, 03:31:00
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşlar veritabanına; örneğin 30 tane konu girdim her konunun tarihide sıralı (10-09-2009, 11-09-2009, .... ) bu şekilde, yapmak istediğim günün tarihinden küçükse yada eşitse listele, tarih olarak db ye yazdırdığım zaman yapamadım bende o yüzden tarih (varchar) olarak belirttim, elle manuel giriyorum tarihi, kod aşağıdaki gibi çalıştırdım ama sorun yıl 2010 olsa bile gün küçükse yada eşitse yine yazdırıyor. Kod biraz devşirme oldu daha pratik ve sağlıklı bir biçimde yapmama yardımcı olursanız sevinirim.
    Bu arada Herkesin Bayramı Kutlu Olsun.

    <? 
    $buay = date("n");
    $buyil = date("Y");
    $buguny= date("w");
    $bugun = date("j");
    $ay_yazi[1]="01";
    $ay_yazi[2]="02";
    $ay_yazi[3]="03";
    $ay_yazi[4]="04";
    $ay_yazi[5]="05"; 
    $ay_yazi[6]="06";
    $ay_yazi[7]="07";
    $ay_yazi[8]="08";
    $ay_yazi[9]="09";
    $ay_yazi[10]="10";
    $ay_yazi[11]="11";
    $ay_yazi[12]="12";
    $buaytxt = $ay_yazi[$buay];
    $an = "$bugun-$buaytxt-$buyil";
    
    
     $q=mysql_query("Select * from konu where tarih<='$an' order by tarih desc ");
    
    while ($r=mysql_fetch_array($q)) {
    ?>
    
    <? echo $r[baslik];?>
    
    <?}
    ?>
  • 20-09-2009, 10:11:00
    #2
    Şöyle birşey düşündüm. Sen elindeki tüm sözleri veritabanına kaydet ancak tarih falan yazma. Bugün bu scripti kullanmaya başladın diyelim, dosya içine bugünün tarihini yaz ve bundan sonraki her gün için, bugünle olan farkını kullanarak veri çek. 3 gün olduysa 3. veriyi çek mesela.

    Eğer aklına yattı ise,
    http://www.cnylmz.net/php/datetime-s...aman-farki-20/ adresinden gece yazdığım ufak örneği kullanarak kaç gün geçtiğini bul. Daha sonra

    $q=mysql_query("Select * from konu");
    mysql_data_seek($q,$gun_farki);
    $veri=mysql_fetch_assoc($q);

    şeklinde veriyi al. Tabi bir de bu başlangıç tarihi sıfırlayabilme imkanın olması lazım.

    if(mysql_data_seek($q,$gun_farki)==false)
    mysql_query("UPDATE ayarlar SET baslangic='".date('Y')."-".date('m')."-".date('d')."'");

    şeklinde. Yoksa 300 gün geçtiyse ve 300 tane kaydın yoksa sıkıntı çekersin
  • 21-09-2009, 20:27:35
    #3
    Çok teşekkür ederim