Selam arkadaşlar,
Ceviz'de görmüştüm Hunter nickli arkadaş paylaşmıştı fakat baya kod karmaşası vardı ve bende oturup sıfırdan sayfalama class'ı yazdım en basit hale indirgedim.

Sayfala_class.php
<?php
class Sayfala{
    public $db_host = 'localhost';
    public $db_user = 'kullanıcı adı';
    public $db_sifre = 'şifreniz';
    public $db_name = 'db adınız';
    public $sayfa_no;
    public $kolon = array();
    public $tablo;
    public $sayfa_sayi;
    public $sorgu;
    public $get;
    
    public function open(){
        $baglanti = @mysql_connect($this->db_host,$this->db_user,$this->db_sifre);
        if(!$baglanti){ die("Database Bağlantısı Sağlanamadı: " . mysql_errno()); }
        $select = @mysql_select_db($this->db_name,$baglanti);
        if(!$select){ die("Database Seçilemedi: " . mysql_errno()); }
        @mysql_query("SET NAMES 'latin5'");
        @mysql_query("SET CHARACTER SET latin5");
        @mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'"); 
           @mysql_free_result($baglanti);
    }
    function gitsin(){
        $ilk = ($this->sayfa_no - 1) * $this->sayfa_sayi;
        $son = $this->sayfa_no * $this->sayfa_sayi;
        $kolonlar = implode(',', $this->kolon);
        $this->sorgu = "select ".$kolonlar." from ".$this->tablo ." order by ".$this->kolon[0]." asc LIMIT $ilk, $son";
        $sql = @mysql_query($this->sorgu);
        $s = 0;
        while($veri = @mysql_fetch_assoc($sql)){
            $veriler[$s] = $veri;
            ++$s;
        }
        $oran = @mysql_num_rows(@mysql_query("select * from ".$this->tablo));
        $say = ceil($oran / $this->sayfa_sayi);
        for($i=1;$i<=$say;$i++){
             if($this->sayfa_no == $i){ 
                 $sayi .= "<b>[$i]</b>";
             }else{
                 $sayi .= "&nbsp;<a href='$this->get=$i'>[$i]</a>&nbsp;"; 
             }
        }
        $veriler[count($veriler)+1] = $sayi;
        return $veriler;
    }
}
?>
Test.php
<?php
include("deneme_class.php");
$sayfala = new Sayfala();
$sayfala->open();
$sayfala->sayfa_no=intval($_GET['sayfa']); // sayfa numaramızı belirttik
if(empty($_GET['sayfa']) || !intval($_GET['sayfa'])){ $sayfala->sayfa_no=1; }
$sayfala->kolon[0] = "kolon1"; 
$sayfala->kolon[1] = "kolon2";
$sayfala->kolon[2] = "kolon3";
#...
$sayfala->tablo = "tabloadi";
$sayfala->sayfa_sayi = 100; //listelenecek veri adedi
$sayfala->get = "?sayfa"; //Get ile alınan değişken başka değişkenleriniz varsa onlarıda yazabilrsiniz örneğin ?test=0&ahmet=a&sayfa gibi ama en sona mutlşaka sayfa numarasını barındıracak değişken ismi gelmeli
$veriler = $sayfala->gitsin();
#print_r($veriler);
for($i=0;$i<count($veriler)-1;$i++){
    for($j=0;$j<count($veriler[$i]);$j++){
        echo $veriler[$i][$sayfala->kolon[$j]]."<br />"; //verileri listeler ikinci for tek satırı simgeler her girişinde bir satırdaki verileri getirir.
    }
}
echo $veriler[count($veriler)]; // numaraları listeler

?>