PHP ile MySQL Veritabanındaki İçeriği Sayfalamak
PHP ile Yönetim Paneli Hazırlamak
Bu uygulamada örnek olarak bir şiir sitesi verilecek. Harflerden oluşan bir menü ve harfe tıklandığı zaman ismi o harf ile başlayan şairler listelenecek. Liste 10 şairden oluşan sayfalara ayrılacak. En altta da sayfa sayısını gösteren linkler bulunacak.
Harf menü ana sayfada(index.php) bulunsun. Şairlerin listeleneceği sayfa ise sair.php olsun. index.php içindeki harf menüdeki linklerin get metodu ile şairin baş harfini göndermesi gerekir. Yani harf menü linkleri aşağıdaki gibi olmalı.
<a href=”sair.php?k=a” mce_href=”sair.php?k=a”>A</a>
Yukarıdaki link sair.php sayfasına k değişkeni ile a harfini(a ile başlayan şair isimleri) gönderir.
sair.php Sayfasının Kodları:
<?php
include(”baglanti.php”);
/*Veritabanı bağlantısı için baglanti.php sayfası çağrılıyor. php veritabanı bağlantısı*/
$k=$_GET[k];
$k_sayfa=$_GET[sayfa];
/*Get metodu ile sayfaya gelen k ve sayfa değişkenleri değişkenlere aktarılıyor.*/
$sql2=”SELECT COUNT(sair) FROM sair where sair like ‘$k%’”;
/*sair tablosunun sair alanındaki $k(şairin baş harfi) ile başlayan kayıt sayısı sorgusu*/
$result2=mysql_query($sql2);
/*$k ile başlayan şair isimlerinin sayısını bulan sorgu işletiliyor.*/
$say=mysql_result($result2,0);
/*Sorgunun sonucunda dönecek değer $say değişkenine aktarılıyor.*/
$sayfa=ceil($say/10);
/*ceil fonksiyonu: sayısı üste yuvarlar. Örnek: 3,9′u 4′e, 4,2′yi 5′e yuvarlar. */
/*Her sayfa 10 kayıttan oluşacağı için kayıt sayısı 10′a bölünür ve üste yuvarlanır. Mesela 65 kayıt varsa ceil(65/10)=7 sayfa olur. */
if ($k_sayfa>1)
/* $k_sayfa (kaçıncı sayfa) bu sayfada kaçıncı sayfanın görüntüleneceğini belirtmek için gönderilen değişken. Bu sayfanın en altında sayfa numaralarından oluşan linkler ile gönderilir. Ana sayfadan gelen linkte bu değişken olmadığı için >1 şartı var. Eğer link ana sayfadan gelirse bu şart sağlanmaz ve else ile 1. sayfa görüntülenir.*/
{
$k_sayi=($k_sayfa-1)*10;
/*$k_sayi değişkeni ile gösterilecek sayfanın kaçıncı kayıttan başlayacağı belirtilir. Mesela sayfa numarası($k_sayi) 2 ise 10. kayıttan 20. kayıta kadar görüntülenir. (2-1)*10 */
$k_lis=mysql_query(”select * from sair where sair like ‘$k%’ order by sair limit $k_sayi,10 “);
/*sair tablosundan sair alanından $k ile başlayan(like ‘$k%’) kayıları sair alanına göre artan sırala(order by sair) ve $k_sayi’dan başlayarak 10 kayıt seç(limit $k_sayi,10)$k sayfa sayısını, $k_sayi ise sayfanın hangi kayıttan başlayacağını belirtir.*/
}
else
/*eğer $k_sayi 1′den küçükse yani sayfa sayısı belirtilmemişse.*/
{
$k_lis=mysql_query(”select * from nesne where nesne like ‘$k%’ order by nesne limit 0,10″);
/*sayfa sayısı belirtilmemişse 0. kayıttan 10. kayıta kadar olan kayıtları yani 1. sayfayı görüntüle.*/
}
/*Yukarıda if yapısı ile istenilen kayıtları seçen sql ifadeleri $k_lis değişkenine aktarılıyor. Aşağıdaki while döngüsü ile istenilen kayılar her döngüde bir kayıt ilerleyerek elde ediliyor.*/
while($row = mysql_fetch_array($k_lis))
{
$ka=$row[’sair’];
/*bu döngü istenilen aralıktaki kayıtları tek tek seçer. Şu anda seçili olan kaydın sair alanındaki veri $ka değişkenine aktarılıyor.*/
$ni=$row[’sair_id’];
/*Şu anda işlenilen kaydın sair_id’si $ni değişkenine aktarılıyor.*/
$sql=”SELECT aciklama FROM meta WHERE sair_id=’$ni’”;
/* $ni (sair_id) değişkeni kullanılarak bu kaydın meta tablosunun aciklama alanındaki verileri çekiliyor. */
$result=mysql_query($sql);
$yazyaz=mysql_result($result,0);
/*aciklama alnındaki şair ile ilgili açıklamalar(şiirlerinin listesi olabilir) $yazyaz isimli değişkene aktarılıyor.*/
?>
<a href=”sair-siiri.php?sair=<?php echo $ka ?>“><?php echo $ka ?></a>
/*şair adından oluşan bir link oluşturuluyor. Bu link aynı zamanda sair-siiri.php sayfasına sair değişkeni içinde şairin adını gönderiyor.*/
<?php echo “: “.$yazyaz;?>
/*şair değişkeninden oluşan linkin önüne şair ile ilgili açıklama(başka bişeylerde olabilir) yazdırılıyor. */
<br>
<?php
}
/*Bu sayfanın listeleme işi bitti, while döngüsü kaptılıyor. Aşağıda sayfa numaralarından oluşan linkler oluşturuluyor.*/
if ($sayfa<>1)
{
/*Sayfalama yapılabilmesi için sayfa sayısı($sayfa) 1′den farklı(fazla daha mantıklı:)) olması gerekir.*/
for ($i=1; $i<=$sayfa; $i++)
/*i değişkenini 1′den başlat ve sayfa sayısı kadar her dönüşte tek tek arttır.*/
{
if ($i<>$k_sayfa)
/*Döngünün $i değişkeni sayfa sayısı olarak ekrana yazdırılacak. Aktif sayfa numarasını ekrana yazdırırken farklı biçimde link vermek için yazılacak sayfa numarasının aktif sayfa($k_sayfa) olup olmadığını kontrol et.*/
{
?>
<a href=”cat.php?k=<?php echo $k.”&sayfa=”.$i?> class=”link1″”><?php echo $i ?></a>
/*Döngünün $i değişken değerini ekrana sayfa numarası linki olarak yaz. Link yine bu sayfaya gelsin ve get metodu ile hangi harfle başlayan şairlerin($k) kaçıncı sayfasının ($i) görüntüleneceğini göndersin.*/
<?php
}
else
/*Eğer yazdırılan sayfa numarası aktif sayfa ise farklı bir biçimlendirme ile yaz. Farklı biçimlendirme class=”link2″ ile veriliyor.*/
{
?>
<a href=”cat.php?k=<?php echo $k.”&sayfa=”.$i?>” class=”link2″><?php echo $i ?></a>
<?php
}
}
}
?>

üzgünüm ama çalışmadı