• 25-04-2008, 15:49:32
    #1
    Üyeliği durduruldu
    Merhaba,


    r10 dan bir arkadaşın scriptini inceliyorum, son 5 kategori listelemeyi temaya yerleştirdim
    bir de en çok okunan 5 makaleyi listelemek istiyorum.


    tablo adı : yazilar
    anlık olarak hit tutan table değişkeni : $hit

    bunlardan yola çıkarak yazabilecek arkadaş var mı acaba ?
  • 25-04-2008, 15:56:29
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    tabloda hit diye bir alan açıp her makale okunduğunda hit i 1 artırırsın.Sonra da makaleleri çekerken hit e göre sıralarsın.
  • 25-04-2008, 16:13:39
    #3
    Üyeliği durduruldu
    AdsenseKolik adlı üyeden alıntı: mesajı görüntüle
    tabloda hit diye bir alan açıp her makale okunduğunda hit i 1 artırırsın.Sonra da makaleleri çekerken hit e göre sıralarsın.
    ben o şekilde tahmin ettim row( ) ile yapılacağnı tahmin ediyordum ama acemilik işte : )
    <?
    $sql = mysql_query ("SELECT * FROM yazilar ORDER BY id DESC LIMIT 0,5"); 
     while($goster=mysql_fetch_array($sql)){
     echo "<li><a href=\"makaleoku.php?id=".$goster['id']."\">".$goster['baslik']."</a><br>";
     }  
    ?>

    Son 5 konu diye kategori açmıştım yukarıdaki kodları kullanmıştım.
    en çok okunanlar için şu şekilde yapmam mı gerekiyor ?

    <?
    $sql = mysql_query ("SELECT * FROM yazilar ORDER BY id DESC LIMIT 0,5"); 
     while($goster=mysql_fetch_array($sql)){
     echo "<li><a href=\"makaleoku.php?id=".$goster['hit']."\">".$goster['baslik']."</a><br>";
    // id ve baslik kolonlari dogrumu bilmiyorum kendine gore uyarlarsan dogru sonuc alirsin
     }  
    ?>
    bu şekilde yaptım ama olmadı.
    başka bir türlü yaptım sadece konu başlıkları yerine hitlerini gösterdi
    nasıl yapmalıyım acaba ?

    bu arada not bırakıyorum.
    en çok okunan üstte, en çok okunana yakın olanlar ise altta listelenecek.
    yani şöyle;

    x konusu 1.250 kez
    y konusu 1.200 kez

    kaç kez okunduğunu kategoride göstermek istemiyorum sadece konu adları çıksın yeter.çok basit olacak.
  • 27-04-2008, 05:21:40
    #4
    tablo adı : yazilar
    anlık olarak hit tutan table değişkeni : $hit
    kodları kopyalayıp yapıştırmışsın sadece
    tablo yapınızın; "id baslik hit" olduğunu düşünerek şöyle bir şey veriyorum.
    <?php
    $kac = 5; // son kac konu olacaksa
    $s = mysql_query("SELECT * FROM yazilar ORDER BY hit asc LIMIT $kac");
    for($i=0;$i<$kac;$i++)
          {
           $id = mysql_result($s, $i, 'id');
           $baslik = mysql_result($s, $i, 'baslik');
           $hit = mysql_result($s, $i, 'hit');
           echo "<li><a href=\"makaleoku.php?id=$id\">$baslik ($hit)</a></li>";
           # çıktısı: konu basligi (hit)
          }
    ?>
  • 27-04-2008, 06:36:03
    #5
    İlk önce sayfanın her okunduğu hiti 1 kez artıralım

    	$sonuc1 = mysql_query("update tablo set hit = (hit+1) WHERE id = $id");
    En çok okunan 20 veriyi tabanında seçtirelim
    	$sorgu = mysql_query("SELECT * FROM tablo order by hit DESC limit 0,20");
    Döngü
    while ($al = mysql_fetch_array($sorgu)){
    	$s_id = $al['id'];
    	$s_baslik = $al['ad'];
    	$s_link = $al['baslik'];
    	$s_hit = $al['hit'];
    	
    	}
    En Çokunan 20
    - <a href=\"$s_link\" >$s_baslik</a>
  • 27-04-2008, 08:50:53
    #6
    Üyeliği durduruldu
    seemsiyah adlı üyeden alıntı: mesajı görüntüle
    tablo adı : yazilar
    anlık olarak hit tutan table değişkeni : $hit
    kodları kopyalayıp yapıştırmışsın sadece
    tablo yapınızın; "id baslik hit" olduğunu düşünerek şöyle bir şey veriyorum.
    <?php
    $kac = 5; // son kac konu olacaksa
    $s = mysql_query("SELECT * FROM yazilar ORDER BY hit asc LIMIT $kac");
    for($i=0;$i<$kac;$i++)
          {
           $id = mysql_result($s, $i, 'id');
           $baslik = mysql_result($s, $i, 'baslik');
           $hit = mysql_result($s, $i, 'hit');
           echo "<li><a href=\"makaleoku.php?id=$id\">$baslik ($hit)</a></li>";
           # çıktısı: konu basligi (hit)
          }
    ?>

    merhaba senin kodlarını çalıştırdım tam istediğim gibi,
    ama en çok okunanı üst tarafta en çok okunana yakın olanı da altta çıkarmak istiyorum.
    sendeki kodlarda en çok okunan en altta çıkıyor.

    teşekkür ederim
  • 27-04-2008, 08:51:26
    #7
    Üyeliği durduruldu
    Kalyoncu adlı üyeden alıntı: mesajı görüntüle
    İlk önce sayfanın her okunduğu hiti 1 kez artıralım
    	$sonuc1 = mysql_query("update tablo set hit = (hit+1) WHERE id = $id");
    En çok okunan 20 veriyi tabanında seçtirelim
    	$sorgu = mysql_query("SELECT * FROM tablo order by hit DESC limit 0,20");
    Döngü
    while ($al = mysql_fetch_array($sorgu)){
    	$s_id = $al['id'];
    	$s_baslik = $al['ad'];
    	$s_link = $al['baslik'];
    	$s_hit = $al['hit'];
    	}
    En Çokunan 20
    - <a href=\"$s_link\" >$s_baslik</a>
    senin kodları çalıştıramadım malesef...
  • 27-04-2008, 12:55:08
    #8
    Pardon, yazdığım saate bakarsan, bi kaç hata çıkması normaldir
    bunu denersen sevinirim...

    <?php
    $kac = 5; // son kac konu olacaksa
    $s = mysql_query("SELECT * FROM yazilar ORDER BY hit desc LIMIT $kac");
    for($i=0;$i<$kac;$i++)
          {
           $id = mysql_result($s, $i, 'id');
           $baslik = mysql_result($s, $i, 'baslik');
           $hit = mysql_result($s, $i, 'hit');
           echo "<li><a href=\"makaleoku.php?id=$id\">$baslik ($hit)</a></li>";
           # çıktısı: konu basligi (hit)
          }
    ?>
  • 27-04-2008, 15:05:40
    #9
    Misafir
    Konunun Olduğu sayfa

    $id = intval($_GET['id']);

    $sorgu = mysql_query("update tablo set hit = (hit+1) WHERE id = $id");


    Listeleme Sayfası

    $sorgu = mysql_query("SELECT * FROM yazilar order by hit DESC limit 0,20");

    <?php while($yaz = mysql_fetch_object($sorgu)) { ?>


    <?php echo "<b> $yaz->isim <br> $yaz->aciklama </b>"; ?>

    <?php } ?>