• 19-12-2006, 22:28:45
    #1
    elimde şöyle küçük bir script var yorum yazıyoruz fakat 100 yorum olsada 1000 yorum olsada hepsini ilk sayfada gösteriyor ben sadece ilk yada son 10 tanesini göstermesini istiyorum , diğerleri 2. 3. sayfada olucak bunu nasıl sağlıyabiliriz kod bu
    Alıntı
    // ##### GET COMMENTS #####
    $comments_query = mysql_query ("SELECT * FROM comments LEFT JOIN users ON comments.user_id = users.user_id WHERE comments.file_id = '" . intval($_GET['id']) . "' ORDER BY comments.added");
    while ($comment = mysql_fetch_array ($comments_query))
    {
    $comment['comment'] = stripslashes ($comment['comment']);
    $comment['title'] = stripslashes ($comment['title']);
    $comment['added'] = date('F d, Y', $comment['added']);
    $comments .= $tpl->pull_template ('comment');
    }
    edit : şöyle bir kod oluşturdum fakat buda çalışmadı , ?sayfa=2 , ?sayfa=3 'e geçincede aynı ilk 10 yorum görünüyor.
    sizce nerde hata?
    // ##### GET COMMENTS ##### 
    $perpage = 10; 
    if( intval($_GET['sayfa']) )
      $page = $_GET['sayfa'];
    else
      $page = 1; 
    $comments_query = mysql_query ("SELECT * FROM comments 
    LEFT JOIN users ON comments.user_id = users.user_id 
    WHERE comments.file_id = '" . intval($_GET['id']) . "' 
    ORDER BY comments.added LIMIT ".$perpage*($page-1).", $perpage");
    while ($comment = mysql_fetch_array ($comments_query))
    {
        $comment['comment'] = stripslashes ($comment['comment']);
        $comment['title'] = stripslashes ($comment['title']);
        $comment['added'] = date('F d, Y', $comment['added']);
        $comments .= $tpl->pull_template ('comment');
    }
    // toplam kayit sayisini bul -> $t_rec
    $sql = "SELECT COUNT(*) FROM comments 
      LEFT JOIN users ON comments.user_id = users.user_id 
      WHERE comments.file_id = '" . intval($_GET['id']) . "'";
    list($t_rec) = mysql_fetch_row( mysql_query($sql) );
    // bu kontrolü ozellestirebilirsin
    for($i=1; $i<=ceil($t_rec/$perpage); $i++) {
      echo "<a href='?sayfa=$i'>$i</a> | ";
    }
  • 20-12-2006, 03:44:58
    #2
    Kurumsal PLUS
    // ##### GET COMMENTS #####
    $comments_query = mysql_query ("SELECT * FROM comments LEFT JOIN users ON comments.user_id = users.user_id WHERE comments.file_id = '" . intval($_GET['id']) . "' ORDER BY comments.added LIMIT 10");
    while ($comment = mysql_fetch_array ($comments_query))
    {
    $comment['comment'] = stripslashes ($comment['comment']);
    $comment['title'] = stripslashes ($comment['title']);
    $comment['added'] = date('F d, Y', $comment['added']);
    $comments .= $tpl->pull_template ('comment');
    }
    çalışması lazım..
  • 20-12-2006, 12:15:41
    #3
    evet limit koyman gerekiyor veritabanından cekerken..üstteki kod çalışır
  • 20-12-2006, 16:02:16
    #4
    çalıştı çok teşekkürler ama bir sorum olcak şimdi sadece istediğim kadar yorum görünüyor ama tüm yorumları göster diye bir buton olmalı ona tıklıyınca hepsi görünmeli ve sayfa yenilenmemeli ( yada sayfada yenilenebilir ) böyle birşey nasıl yapabilirim fikri olan varmı ?
  • 20-12-2006, 16:25:04
    #5
    // ##### GET COMMENTS #####
    if (! $k ) { $k=0; }
    $comments_query = mysql_query ("SELECT * FROM comments LEFT JOIN users ON comments.user_id = users.user_id WHERE comments.file_id = '" . intval($_GET['id']) . "' ORDER BY comments.added LIMIT $k");
    $hepsi_tab="select * from comments";
    $hepsi=mysql_query($hepsi_tab);
    $toplam=@mysql_num_rows($hepsi);
    while ($comment = mysql_fetch_array ($comments_query))
    {
    $comment['comment'] = stripslashes ($comment['comment']);
    $comment['title'] = stripslashes ($comment['title']);
    $comment['added'] = date('F d, Y', $comment['added']);
    $comments .= $tpl->pull_template ('comment');
    $i = 0;
    while ($i < $toplam) {$a = $a + 1; 
     
    echo "<a href='?k=$i'>[$a]</a>";
    $i=$i + 1;}
    }
    böyle olabilir
  • 20-12-2006, 16:51:10
    #6
    sky verdiğim kodu tam anlıyamadım verdiğin gibi ekledim çalışmadı ilk başta 10 yorum belirtilen bir butona tıklıyınca bütün yorumlar ( yada sayfalar halinde ) yorumların görünmesini istiyorum ona göre düzenliyebilirmisin + rep teşekkürler.


    edit: bu arada yorumları sayfalarda göstermek için bu kodu kullanıyorum

    Alıntı
    <table width="100%" cellspacing="1" cellpadding="3" class="heading-table">
    {comments}
    <tr>
  • 20-12-2006, 17:00:05
    #7
    <? 
    if (! $k ) { $k=0; }
    $comments_query = mysql_query ("SELECT * FROM comments LEFT JOIN users ON comments.user_id = users.user_id WHERE comments.file_id = '" . intval($_GET['id']) . "' ORDER BY comments.added LIMIT $k , 10");
    $hepsi_tab="SELECT * FROM comments LEFT JOIN users ON comments.user_id = users.user_id WHERE comments.file_id = '" . intval($_GET['id']) . "' ORDER BY comments.added ";
    $hepsi=mysql_query($hepsi_tab);
    $toplam=@mysql_num_rows($hepsi);
    while ($comment = mysql_fetch_array ($comments_query))
    {
    $comment['comment'] = stripslashes ($comment['comment']);
    $comment['title'] = stripslashes ($comment['title']);
    $comment['added'] = date('F d, Y', $comment['added']);
    $comments .= $tpl->pull_template ('comment');
    $i = 0;
    while ($i < $toplam) {$a = $a + 10; 
     
    echo "<a href='?k=$i'>[$a]</a>";
    $i=$i + 10;}
    } 
    ?>
    birde böyle denermisin
    eklediğim kodlar da limit k dan sonra 10 tane veri getir diyorum
    ve alta [0-10] [10-20] şeklinde linkler veriyor bunlar da k değeini 10 narlı değiştiriyor bir dene çalışmazsa veya hata verirse hataysıyla birlikte yazarsan daha çok yardım edebilirim
  • 20-12-2006, 17:03:56
    #8
    ?k=0 , ?k=10 , ?k=20 diye sayfalar oluştu fakat hangisine tıklarsan tıkla aynı yorumlar sayfa değişiyor fakat hep ilk yorumlar


    edit: ve toplam 100 yorum var diyelim 10 , 20 , 30 , 50 diye devam ederek toplam 3000 e kadar falan 30-40 tane sayfa oluşturuyor ama giden sayfalar hep birbirini takip ediyor ?k=0 , ?k=10 , ?k=20 , ?k=0 , ?k=10 , ?k=20 ,?k=0 , ?k=10 , ?k=20 diye


    seo url kullanıyorum bundan olabilirmi sayfalar siteadi.com/files/xxx.html?k=10 diye oluşuyor


    htaccess şöyle
    Alıntı
    RewriteRule "^/?(page)/([0-9]+)-files\.html$" index.php?page=$2 [Last]
    RewriteRule "^/?(category|file|type)/([0-9]+)[^/]+\.html$" $1.php?id=$2 [Last]
    RewriteRule "^/?(category|file|type)/([0-9]+)/([0-9]+)[^/]+\.html$" $1.php?id=$2&page=$3 [Last]
  • 20-12-2006, 17:10:47
    #9
    denemeleri localhosta mı yapıyorsun yoksa direk hosttamı
    sen herhalükarde kodarın en başına şunu ekle
    $k=$_GET['k'];
    ekle eğer methotd post sa bunu post yaparsın

    EDİT: Seo olayını bilmiyorum işin gerçeği hiç denemedim yanyana sıralanma olayı için

    $i = 0;
    while ($i < $toplam) {$a = $a + 10; 
     
    echo "<a href='?k=$i'>[$a]</a>";
    $i=$i + 10;}
    bu kodları css veya tablo içine alabilirsin