Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

<< 1 2 3 4..20 30 >> evet sayfalama algortiması

Konu, 'Yazılım Geliştirme' kısmında Düzgün tarafından paylaşıldı.

  1. Düzgün

    Düzgün Üye

    Kayıt:
    29 Temmuz 2002
    Mesajlar:
    206
    Beğenilen Mesajlar:
    0
    selam
    database deki mesajları sayfalamak istiyorum
    başlıktaki gibi gorunmesinin mantığı nedir?
     
  2. mkarabulut

    mkarabulut Misafir

    Selamlar...

    Kasttiğin dil ASP ve ADODB kullanarak yapmak ise,

    RecordSet'in
    AbsolutePage
    PageSize
    PageCount

    özelliklerini kullanarak bu işi yapabilirsin
    Bu konuda şurada bir makale var :
    http://www.asp101.com/articles/recordsetpaging/index.asp

    Kastettiğin PHP ve mysQL ise,onunda kendine göre bir metodu var.

    1- Tüm kayıt sayısını bulup, sayfa sayısını belirleyeceğin sayfa boyutuna göre hesaplamak.
    2- mysql'in LIMIT özelliğini kullanarak sadece parametrelere belirlenmiş sayfanın kayıtlarını mysql'den çekmek.
    PHP:
    <?
     
    /*
        Adım 1. Kayıt sayısını ve sayfa sayısını bul
     */
     
    $pagesize=20;
     
    $sorgulama=mysql_query("SELECT * FROM tablo");
     
    $toplam_kayit=mysql_num_rows($sorgulama); 

     
    //ceil 2.5 gibi bir sayıyı 3 2 yuvarlamak için kullanılır
     
    $toplam_sayfa ceil($toplam_kayit/$pagesize);

     
    /*
      Adım 2 . Sayfaya göre kayıtları listele 
                    ve sayfalama linklerini göster
     */
     
    $page=$HTTP_GET_VARS["page"];
     
     
    $baslangic = ($page ) * $pagesize;
     
    $sorgulama=mysql_query("SELECT * FROM tablo LIMIT $baslangic,$pagesize");

      while (
    $kayit=mysql_fetch_array($sorgulama)){
                   
    //kayıtlara istediğiniz gibi davranabilirsiniz
                   //sadece bulunulan sayfanın kayıtları var
     

     
     
    /*
             sayfalama linkleri 
     */

       
    echo "Sayfa : ";
       for (
    $i=1;$i<=$toplam_sayfa;$i++){
                            if (
    $i==$page)
                                      echo 
    $i ";
                            else
                                      echo 
    " <a href=\"$PHP_SELF?page=$i\">$i</a> ";
       }

      
    /* Bu kadar */   
    ?>
    Daha düzgün bir sayfalama örneğini
    ocal.net server taraflı teknikler tarafında bulabilirsiniz. Yanılmıyorsam Asosyal nickli arkadaş yazmıştı yazıyı.

    Kolay gelsin
     
  3. Düzgün

    Düzgün Üye

    Kayıt:
    29 Temmuz 2002
    Mesajlar:
    206
    Beğenilen Mesajlar:
    0
    Sağolasın kardeş.
    Birde örneğin forumda sayfalama yaparken, << 1 2 3 4 5.. 20 21 >>
    gibi gösterimler oluyor sanırım onlarda şu mantığa dayanıyor.
    en fazla 10 sayfaysa normal göster.
    10 dan yukarıysa ilk 8'i göster sonra son ikiyi ekle.
    tabi biraz daha karışık olmalı aslında..

    Aslında perl ile forum yazmayı planlıyorum ondan bazı algoritmaları çözmeye çalışıyorum..
    flat text database olacak her konu için farklı dosyalar oluşturulacak ve toplam topic sayısı bir dosyaya yazılacak biraz hızlı olmasından ve bir tek dosyaya fazla veri girmemek için farklı dosya kombinasyonları falan olması lazım.
    Bazı forum scriptlerinide inceleyeyim bu arada..
     
  4. mkarabulut

    mkarabulut Misafir

    Öncelikle kolay gelsin diyeyim...

    Fakat önümüzde bir firma tarafından yapılmış Text+PERL kullanan UBB gibi bir örnek var, ne kadar yavaş çalıştığını ve insanı ne gıcık ettiğini haıtlarsın...

    Neden text dosyalar ve PERL, sorabilirmiyim ?
     
  5. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Hayatta olmaz Perl ve txt databaseli bir forum Perl ve MYSQL ok hep beraber yapabiliriz bunu. Ne dersin Düzgün?
     
  6. Düzgün

    Düzgün Üye

    Kayıt:
    29 Temmuz 2002
    Mesajlar:
    206
    Beğenilen Mesajlar:
    0
    Aslında elimde şimdiden multi kullanıcılı sayaç ve ziyaretçi defteri servisleri var ve bütün hostinglerde çalışacak şekilde yazıldı. Free hostlar baz alınarak tabi. Çünkü en az modul ve kullanım desteği veren onlar. sonra bunlara birde multi forum ekleyip guzel bi paket yapmayı düşünüyordum hepsinin bi yonetim paneli olacaktı sonra backup lama filam yani sonuçta bütün hostlar için olduğundan text tabanlı olması şart. gelişmiş forumlar gibi ayrıntılı olmasına gerek yok tabi hem bi başlangıçta olmuş olur. tecrube kazanırdım biraz programcılıktada..
    Tamam bak buda olabilir. Text tabanlı yaptığım arada kaynar nede olsa aynı mantık buna yoğunlaşırız devam edebiliriz..
     
  7. sahinavci_87

    sahinavci_87 Üye

    Kayıt:
    31 Aralık 2006
    Mesajlar:
    78
    Beğenilen Mesajlar:
    0
    PHP:
    <?php include("adminpanel/baglan.php");
     
    /* 
        Adım 1. Kayıt sayısını ve sayfa sayısını bul 
     */ 
     
    $pagesize=20
     
    $sorgulama=mysql_query("SELECT * FROM emlak"); 
     
    $toplam_kayit=mysql_num_rows($sorgulama);  
     
    //ceil 2.5 gibi bir sayıyı 3 2 yuvarlamak için kullanılır 
     
    $toplam_sayfa ceil($toplam_kayit/$pagesize); 
     
    /* 
      Adım 2 . Sayfaya göre kayıtları listele  
                    ve sayfalama linklerini göster 
     */ 
     
    $page=$HTTP_GET_VARS["page"]; 
      
     
    $baslangic = ($page ) * $pagesize
     
    $sorgulama=mysql_query("SELECT * FROM emlak LIMIT $baslangic,$pagesize"); 
      while (
    $kayit=mysql_fetch_array($sorgulama)){ 
                   
    //kayıtlara istediğiniz gibi davranabilirsiniz 
                   //sadece bulunulan sayfanın kayıtları var 
     
    }  
      
     
    /* 
             sayfalama linkleri  
     */ 
       
    echo "Sayfa : "
       for (
    $i=1;$i<=$toplam_sayfa;$i++){ 
                            if (
    $i==$page
                                      echo 
    $i "
                            else 
                                      echo 
    " <a href=\"$PHP_SELF?page=$i\">$i</a> "
              
      } 
      
    /* Bu kadar */    
      
    ?> 
    <?=$tarih?>
    <?=$id?>

    Sayfa : 1 2 3 4 5 diye yazdı sayfamda ama tabloyu kendime göre ayarladım. herhangi bir listeleme yapmadı.
     
  8. BitaMig

    BitaMig Daimi Üye

    Kayıt:
    23 Mart 2008
    Mesajlar:
    1,247
    Beğenilen Mesajlar:
    3
    Meslek:
    MIS / BI
    Şehir:
    ISTANBUL
    $page i bastır bakalım ne çıkacak ?!
     
  9. sahinavci_87

    sahinavci_87 Üye

    Kayıt:
    31 Aralık 2006
    Mesajlar:
    78
    Beğenilen Mesajlar:
    0
    hiçbirşey olmadı :(
     
  10. warekurt

    warekurt Daimi Üye

    Kayıt:
    21 Şubat 2010
    Mesajlar:
    2,759
    Beğenilen Mesajlar:
    0
    Şehir:
    Çikolata,Kek :D
    while ($kayit=mysql_fetch_array($sorgulama)){
    //kayıtlara istediğiniz gibi davranabilirsiniz
    //sadece bulunulan sayfanın kayıtları var
    }

    burası kayıtların işlendiği while döngüsü, arkadaş önemli olan sayfalar diye kesmiş orayı not düşmüş, turuncu yerler yerine içeriği döktüreceksiniz.
     
  11. BitaMig

    BitaMig Daimi Üye

    Kayıt:
    23 Mart 2008
    Mesajlar:
    1,247
    Beğenilen Mesajlar:
    3
    Meslek:
    MIS / BI
    Şehir:
    ISTANBUL
    @ware benim ilk aklıam gelen $page=$HTTP_GET_VARS["page"]; satırı zira başlık 2002 tarihli.belki arkadaşın php sürümü 5 ve üstü olabilir.php5 ile $HTTP_GET_VARS kullanımı kalktı diye biliyordum.
     
  12. warekurt

    warekurt Daimi Üye

    Kayıt:
    21 Şubat 2010
    Mesajlar:
    2,759
    Beğenilen Mesajlar:
    0
    Şehir:
    Çikolata,Kek :D
    @ BitaMig sadece listeleme yapmadığını söylemiş arkadaş, kodda da listeleme yaptıran bir kısım yok diye sorun o gibi geldi.