<?
    $perpage=mysql_num_rows($q);
    /*
Bu degiskenleri bir sekilde aldiginizi farz ediyorum:
$count = toplam yazi/üye/ürün sayisi
$perpage = sayfa basina yazi/üye/ürün gösterimi
$page = aktif sayfanin numarasi
*/
if($count > $perpage) :
  $x = 3; // akrif sayfadan önceki/sonraki sayfa gösterim sayisi
  $lastP = ceil($count/$perpage);
  if ($sayfa>$lastP) $sayfa=$lastP;
$ileri=$sayfa+1;
$geri=$sayfa-1;

  // sayfa 1'i yazdir
  if($sayfa==1) echo '<span class="disabled">&laquo; Geri</span><span class="current">1</span>';
  else echo '<a href="'.altk_link($akat_id).'_'.$geri.'.html">&laquo; Geri</a><a href="'.altk_link($akat_id).'_1.html">1</a>';
  // "..." veya direkt 2
  if($sayfa-$x > 2) {
    echo "...";
    $i = $sayfa-$x;
  } else {
    $i = 2;
  }
  // +/- $x sayfalari yazdir
  for($i; $i<=$sayfa+$x; $i++) {
    if($i==$sayfa) echo '<span class="current">'.$i.'</span>';
    else echo '<a href="'.altk_link($akat_id).'_'.$i.'.html">'.$i.'</a>';
    if($i==$lastP) break;
  }
  // "..." veya son sayfa
  if($sayfa+$x < $lastP) {
    echo "...";
    echo '<a href="'.altk_link($akat_id).'_'.$lastP.'.html">'.$lastP.'</a>';
    echo '<a href="'.altk_link($akat_id).'_'.$sayfa.'.html">next &raquo;</a>';
  } elseif($sayfa+$x == $lastP) {
    echo '<a href="'.altk_link($akat_id).'_'.$lastP.'.html">'.$lastP.'</a>';
    echo '<span class="disabled">iLeri &raquo;</span>';
  }
endif;  
    ?>
arkadaşlar ne zmandır bu pagenation u kodlarını kullanıyorum bişey dikkatimi çekti burda mesela toplam 5 sayfa var diyelim her şey yolunda yalnız 5. sayfa geldiğinizde extra boş olan 2 tanede sayfa çıkıyor 6-7 gibi ama 5 son sayfa bunu düzeltemedim :S