• 02-05-2009, 23:09:16
    #10
    Dostum ben aşağıda resimli olarak sonuç olarak sitede nasıl göründüğünü bile gösterdim.

    Verdiğim kodu alıp sitenin sağ veya sol bloklarından birine yerleştir.
    Sonra öncelikle şurayı editle:
    <?
    $sql="SELECT baslik, id, resim FROM haberler WHERE tarih >'".date("Ymd")."000000' ORDER BY hit DESC LIMIT 0,5";
    									$sorgu=mysql_query($sql,$link);
    $i=0;
    										While($veri=mysql_fetch_array($sorgu))
    {
    $i++;
    ?>
    Burayı nasıl editleyeceksin?
    1- Senin sitende haberler Veri Tabanının ne adlı tablosundadır? Haberlerin, içeriklerin hangi tabloda saklandıklarını öğreneceksin ve yukarıda FROM haberler yazdığımız yere siz de örneğin FROM sections diye değiştireceksiniz. Sonra sitenizin Veri Tabanında veriler saklanırken tarih'e ne ad veriliyor. Ona göre yukarıda WHERE tarih yazdığımız yere de onu yazacaksınız.

    Böyle yaparsanız çalışır yani.
    Eğer buna rağmen MySQL hatası verirse, bu sayfa içinde <? require ("configurations.php"); ?> şeklinde yazarak ayarlar dosyasını çağırabilirsiniz, o zaman MySQL ile iletişim kurmuş olur.
  • 02-05-2009, 23:18:40
    #11
    haberin olduğu tabloya sonokunma satırını ekle ve default değerinide eklediğin günden bir önceki gün olarak ayarla. Sonra haberin okunduğu sayfadaki php kodlarının arasına güncelleme kodunu ekle. Daha sonra Bugun okunan haberleri çekmek oldukça basit olacaktır.

    SQL Güncelleme Örneği;

    $bugun = tarihFormat();
    update set tabloadi sonokunma = '$bugun[format3]' where haberid = '$haber_id'
    Bugun okunan haberleri alma örneği;

    $bugun = tarihFormat();
    select haberid,title,sonokunma from tabloadi where sonokunma = '$bugun[format3]' order by id desc
    Tarihler içinde sana çok kullanışlı bir fonksion veriyorum bende bir kaynaktan almıştım.

    function tarihFormat($tarih = "")
    {
    if ($tarih=="")
    $tarih = date("Y-m-d H:i:s");
     
    $tarihDizi["gunler"] = array("Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi");
    $tarihDizi["aylar"] = array ("01" => "Ocak", "02" => "Şubat", "03" => "Mart", "04" => "Nisan", "05" => "Mayıs", "06" => "Haziran",
    "07" => "Temmuz", "08" => "Ağustos", "09" => "Eylül", "10" => "Ekim", "11" => "Kasım", "12" => "Aralık");
     
    $zamanExp = explode (" ",$tarih);
    $tarihExp = explode ("-",$zamanExp[0]);
     
    $haftaninGunu=strftime("%w",strtotime($tarih));
    $tarihFormat["ay"] = $tarihDizi["aylar"][$tarihExp[1]];
    $tarihFormat["haftanin_gunu"] = $tarihDizi["gunler"][$haftaninGunu];
    $tarihFormat["saat"] = $zamanExp[1];
    $tarihFormat["format1"] = $tarihExp[2]."-".$tarihExp[1]."-".$tarihExp[0];
    $tarihFormat["format2"] = $tarihFormat["format1"]." ".$tarihFormat["saat"];
    $tarihFormat["format3"] = $tarihExp[2]." ".$tarihFormat["ay"]." ".$tarihExp[0];
    $tarihFormat["format4"] = $tarihFormat["format3"].", ".$tarihFormat["haftanin_gunu"];
    //Buradaki formatları ihtiyacınıza göre değiştirebilir veya yenisini ekleyebilirsiniz.
    
    return $tarihFormat;
    }
    Umarım yardımcı olmuşumdur.
  • 03-05-2009, 00:09:26
    #12
    Benim yazdığım bu kod zaten sadece bugünün en çok okunan haberlerini gösteriyor. Ertesi gün hiç haber eklenmemişse bu blok boş görünüyor. Son 24 saatin en çok okunanlarını görüyorsunuz.

    WHERE tarih >'".date("Ymd")."000000' ORDER BY hit
  • 03-05-2009, 00:18:14
    #13
    janocan adlı üyeden alıntı: mesajı görüntüle
    Benim yazdığım bu kod zaten sadece bugünün en çok okunan haberlerini gösteriyor. Ertesi gün hiç haber eklenmemişse bu blok boş görünüyor. Son 24 saatin en çok okunanlarını görüyorsunuz.
    WHERE tarih >'".date("Ymd")."000000' ORDER BY hit
    bu kod ile yarin eklenen haberleri listelersin. Sondaki 0000 larin anlamini çözemedim ama. Arkadas tüm zamanlarda eklenen haberlerin bugün en cok okunanlari listelemek istemiş
  • 03-05-2009, 00:22:36
    #14
    Bugün Çok Okunanlar 02-05-2009 22:41:50 teşekkür ederim.

    bu da yeni herhalde -rep ile teşekkür =)
  • 03-05-2009, 04:11:58
    #15
    Öncelik ile tablolarını bilmiyorum ama anlatarak yardımcı olayım,

    Böyle bir istekte bulunduğundan dolayı tablonda okunan haberlerin ne zaman okunduğu kayıt ediliyor demektir. Ve tablon şu şekilde olması gerekiyor

    HaberTablosu
    ___________
    ID
    HaberAdı
    HaberTarihi
    ..

    HaberHit
    _________
    ID
    HaberID
    Hitdate

    Eğer tablon bu şekilde ise;

    sql = "SELECT HaberAdı FROM HaberTablosu WHERE ID IN (SELECT HaberID,COUNT(*) AS HITS FROM HABERHIT WHERE HITDATE =".date("Ymd")." GROUP BY HaberID ORDER BY HITS LIMIT 5)"

    Yukardaki sql hit tablosundaki tabloları ID'ye göre gruplayarak toplar ve maksimum hit'e göre en fazla hiti olan 5 kaydın haberID'sini geri dönderir. Be dönen HaberID'lerinin isimleri bulunur ve yazılır.

    Şuan bunun haricinde sana önerebileceğim bir tablo yapısı yok. Tablonu yazarsan daha fazla yardımcı olmaya çalışırız.

    Kolay gelsin.
  • 21-12-2012, 11:45:01
    #16
    electronicboy adlı üyeden alıntı: mesajı görüntüle
    Öncelik ile tablolarını bilmiyorum ama anlatarak yardımcı olayım,

    Böyle bir istekte bulunduğundan dolayı tablonda okunan haberlerin ne zaman okunduğu kayıt ediliyor demektir. Ve tablon şu şekilde olması gerekiyor

    HaberTablosu
    ___________
    ID
    HaberAdı
    HaberTarihi
    ..

    HaberHit
    _________
    ID
    HaberID
    Hitdate

    Eğer tablon bu şekilde ise;

    sql = "SELECT HaberAdı FROM HaberTablosu WHERE ID IN (SELECT HaberID,COUNT(*) AS HITS FROM HABERHIT WHERE HITDATE =".date("Ymd")." GROUP BY HaberID ORDER BY HITS LIMIT 5)"

    Yukardaki sql hit tablosundaki tabloları ID'ye göre gruplayarak toplar ve maksimum hit'e göre en fazla hiti olan 5 kaydın haberID'sini geri dönderir. Be dönen HaberID'lerinin isimleri bulunur ve yazılır.

    Şuan bunun haricinde sana önerebileceğim bir tablo yapısı yok. Tablonu yazarsan daha fazla yardımcı olmaya çalışırız.

    Kolay gelsin.
    konuyu hortlatmak istemezdim ama php ile yeni tanışan bri olarak buradaki mantığı anlamak istiyorum.

    sistemin çalışması için tüm okunmalarda hit tablosuna okunan haberin idsi ve okunduğu tarihi yazdırıyor. php sorgusunda ise hit tablosunda eklenmişolan tarih aralığı olarak son 24 saati sorgulatıp bu tarih aralığında en çok tekrar eden haberlerin idsine göre listeleme mi yaptırmış oluruz