PHP de sayfalama çok soruluyor sanırım, buraya örnek olarak yazdığım bir kod ekleyim ihtiyacı olanlar için. Gerekli yerleri kendinize göre değiştirin,linklerin görünümü vs. için kendi beğeninize göre stillleri değiştirebilirsiniz.
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Veritabanı Sayfala</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
<style type="text/css">
body{
margin:0;
padding:0;
font-size:11px;
font-family:Tahoma, Verdana, Arial, Helvetica, sans-serif;
}
table{
border:1px solid #999;
margin-top:20px;
}
td{
padding:3px;
}
.baslik{
font-weight:bold;
text-align:center;
border:1px solid #999;
background-color:#900;
color:#fff;
padding:5px;
}
.sol, .sol2{
text-align:center;
font-weight:bold;
}
.orta, .orta2{
border-left:1px solid #999;
}
.sag, .sag2{
border-right:1px solid #999;
border-left:1px solid #999;
}
.sol, .orta, .sag{
background-color:#f4f4f4;
border-bottom:1px solid #999;
}
.sol2, .orta2, .sag2{
background-color:#ddd;
border-bottom:1px solid #999;
}
.div_sayfa{
font-weight:bold;
color:#009;
margin:10px;
padding:10px;
text-align:center;
}
.div_sayfa a{
color:#06c;
font-weight:bold;
padding:3px;
}
.div_sayfa a:hover{
color:#060;
}
.self{
color:#333;
font-weight:bold;
background-color:#ccc;
padding:3px;
}
.s_yok{
color:#666;
font-style:italic;
padding:10px;
text-align:center;
}
</style>
</head>
<body>
<?php
//Veritabanı bağlantı ayarları
$host= "localhost";
$database = ""; //Veritabanı adı
$username = ""; //Kullanıcı adı
$password = ""; //Şifre
$sql = mysql_connect($host, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database, $sql);
$gelen_sayfa = (isset($_GET['sayfa']) && $_GET['sayfa'] !='' ) ? intval($_GET['sayfa']) : 1;
//Bağlanılacak Tablo
$tablo = 'tablo';
//Sayafalamayı yapan dosyanın adı
$link = 'sayfala.php';
//Sayfada kaç kayıt görünecek
$limit= 20;
//Kaç sayfa öncesi ve sonrası görünecek
$s_s = 10;
/*------------------------------------
Alan Başlıklarını ve $sonuc['alan1']
kısımlarını kendinize göre değiştirin
-------------------------------------*/
$s_sor = mysql_query("select count(id) from $tablo") or trigger_error(mysql_error(),E_USER_ERROR);
$satir = mysql_result($s_sor,0);
mysql_free_result($s_sor);
echo '<table width="80%" align="center" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="baslik">No</td>
<td class="baslik">Alan 1 Başlık</td>
<td class="baslik">Alan 2 Başlık</td>
<td class="baslik">Alan 3 Başlık</td>
<td class="baslik">Alan 4 Başlık</td>
</tr>';
if($satir >0){//sonuç varsa
$baslama = ($gelen_sayfa > 1) ? (($gelen_sayfa -1) * $limit) : 0 ;
$sayfa_kac = $satir/$limit;
$sayfa_sayisi = ($satir % $limit != 0) ? intval($sayfa_kac)+1 : intval($sayfa_kac);
$basla=( $satir >= $baslama ) ? $baslama : 0 ;
unset( $sayfa_kac, $baslama );
$sorgu = 'select * from '.$tablo.' order by id asc limit '.$basla.' , '.$limit;
$sorgula = mysql_query($sorgu) or trigger_error(mysql_error(),E_USER_ERROR);
$i=1;
$style='';
while($sonuc=mysql_fetch_array($sorgula)){
echo '
<tr>
<td class="sol'.$style.'">'.$i.'</td>
<td class="orta'.$style.'">'.$sonuc['alan1'].'</td>
<td class="orta'.$style.'">'.$sonuc['alan2'].'</td>
<td class="orta'.$style.'">'.$sonuc['alan3'].'</td>
<td class="orta'.$style.'">'.$sonuc['alan4'].'</td>';
$style = ($style=='') ? '2' : '';
$i++;
}//while son
mysql_free_result($sorgula);//hafızayı boşalt
$hangi_sayfa= ($gelen_sayfa > 0)? $gelen_sayfa : 1 ;
echo '
</table>
<div class="div_sayfa">
Toplam '.$sayfa_sayisi.' Sayfadan '.$hangi_sayfa.'. Sayfa<br /><br />';
$alt= ($gelen_sayfa - $s_s);
if($sayfa_sayisi <= $s_s || $gelen_sayfa <= $s_s ) {$alt=1;}
$ust= (($gelen_sayfa + $s_s)< $sayfa_sayisi ) ? ($gelen_sayfa + $s_s) : ($sayfa_sayisi);
echo ($gelen_sayfa > 1 )? '<a href="'.$link.'?sayfa=1" title="İlk Sayfa"><strong>« </strong></a><a href="'.$link.'?sayfa='.($gelen_sayfa -1).'" title="Önceki Sayfa"><strong>Geri</strong></a>':' ';
for($i=$alt; $i<=$ust ;$i++){
echo ($i != $gelen_sayfa ) ? '<a title="'.$i.'. Sayfa" href="'.$link.'?sayfa='.$i.'">'.$i.'</a>' : '<span class="self">'.$i.'</span>';
}
echo ($gelen_sayfa < $sayfa_sayisi)? '<a href="'.$link.'?sayfa='.($gelen_sayfa +1).'" title="Sonraki Sayfa"><strong>İleri</strong></a><a href="'.$link.'?sayfa='.$sayfa_sayisi.'" title="Son Sayfa"><strong> »</strong></a>' :'';
echo '</div>';
}
else{
echo '<tr><td colspan="5" class="s_yok">Hiç Bir Sonuç Bulunamadı</td></tr></table>';
}
mysql_close($sql);
?>
</body>
</html>