kendi kullandığım sayfalama fonksiyonu umarım işinizi görür.

<?php
function sayfala($sayfa,$link,$tsayfa){
echo '<div class="pgno">';
$baslangic=$sayfa-4;
	if($baslangic<1) $baslangic=1;
$bitis=$sayfa+5;
	if($bitis>$tsayfa) $bitis=$tsayfa+1;
	for($x=$baslangic; $x<$sayfa; $x++)//seçilen sayfadan küçükler için
	{
		if($x==$sayfa){echo '<span class="current">'.$x.'</span>';}
		else{echo '<a href="'.$link.$x.'">'.$x.'</a>&nbsp;';}
	}
	for($x=$sayfa; $x<$bitis; $x++){//seçilen sayfadan büyükler için (sayfa+5)
	if($x==$sayfa){echo '<span class="current">'.$x.'</span>';}else{
	echo '<a href="'.$link.$x.'">'.$x.'</a>&nbsp;';
	if($x==$tsayfa){$ece="esitlendi";}else{$ece="esitlenmedi";}
	}}
	if($ece=="esitlenmedi"){echo'<span style="background-color:white; color:black;">...</span> <a href="'.$link.$tsayfa.'">'.$tsayfa.'</a>';}
	if($sayfa==$tsayfa){echo '<span class="nextprev">Sonraki Sayfa »</span>';}else if($tsayfa>1){echo '<a class="nextprev" href="'.$link.($sayfa+1).'">Sonraki Sayfa »</a> ';}
	echo '</div>';
	}
?>
$sayfa=$sayfa[1]; if(($sayfa=="") or !is_numeric($sayfa) or ($sayfa <= 0)){$sayfa=1;}
$sql=mysql_fetch_array(mysql_query("SELECT COUNT(id) FROM tablo"));
$limit=28;
$satirsay=$sql[0];
$tsayfa=ceil($satirsay/$limit);
$baslama=($sayfa-1)*$limit;
$query=mysql_query("SELECT deger1,deger2 FROM tablo WHERE deger1 LIKE '%$arama/%' ORDER BY id DESC LIMIT $baslama, $limit");
sayfala($sayfa, '?s=', $tsayfa);