Verilerini çekeceğin tablonun kayıt satısını belirli oranda böldürüp, mysqle limit kullanarak sql göndermen gerekiyor, bu taze phpciler için biraz zor...

   <?php
$sayfa = $_GET['sayfa']; //get ile gelen sayfayı alıyoruz

// sayfa rakam değilse ve boş ise sayfayı 1 yapıyoruz
if (!is_numeric($sayfa) || $sayfa=="") 
{ 
    $sayfa=1; 
} 

$kacar = 5; // buraya 1 sayfada kaç kayıt göstermek istediğinizi giriniz.

$kayit_sayisi = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM TABLOADI"));
$sayfa_sayisi = $kayit_sayisi['0'] / $kacar; // kayit sayısını sayfada gösterilecek kayıt sayısına bölüp sayfa sayısını buluyoruz

if ($sayfa_sayisi % $kacar != 0) 
{ 
    $sayfa_sayisi++;
} // sayfa sayısının kacar a göre modunu aldık 0 dan farklı ise sayfa sayısını 1 arttırdık.yani 7 kayit varsa 2 sayfa yapmak için bu gerekli.

$nerden = ($sayfa * $kacar) - $kacar;  // sorguda nerden kısmı örn 2. sayfada bu değer 5 olacaktır
$sorgu = mysql_query("SELECT * FROM tabloadi LIMIT $nerden, $kacar"); //Sorgumuz

//döngü ile veritabanındaki verileri ekrana veriyoruz.
while ($veri = mysql_fetch_array($sorgu)) 
{ 
      echo $veri['tablo_alani'];
}

// sayfaları yazdıracağımız döngümüz.
for ($i = 1; $i <= $sayfa_sayisi; $i++) 
{ 
    echo "| <a href='index.php?sayfa=$i'>$i </a>|";
}

?>
burada kodlar ve gönderilen sql incelenerek, algoritması birazda olsa çözülebilir.

ayrıca @yasarkemaldag şurada anlatmış;
https://www.r10.net/php/130012-php-il...ml#post1443269