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 - 1 ) * $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
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..
Ö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 ?
Hayatta olmaz Perl ve txt databaseli bir forum Perl ve MYSQL ok hep beraber yapabiliriz bunu. Ne dersin Düzgün?
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..
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 - 1 ) * $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ı.
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.
@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.
@ BitaMig sadece listeleme yapmadığını söylemiş arkadaş, kodda da listeleme yaptıran bir kısım yok diye sorun o gibi geldi.