Bu hazırlamış olduğum PHP sınıfı sayesinde yaklaşık 5 katır kod ile PHP MYSQL sayfalama çalışmalarınızda kolaylık yapabilirsiniz. Tek yapmanız gereken toplam kayıt sayısını, her sayfada gösterilecek kayıt sayısını ve bulunduğu sayfayı sınıfa tanımlamak. Aslında PHP de sayfalama yapmak zor değil, MYSQL limit komutu ile çekeceğiniz kayıt sayısını ve sıra sayısını belirliyoruz hepsi bu kadar. İşlerinizi kolaylaştıracağına inanıyorum. İşte sayfalama sınıfı ve kullanımı :
Sınıfımızın adı sayfalama olarak geçiyor. İlk olarak bir değişkenimizde bu sınıfı tanımlıyoruz. Tercihinize göre bir değişkende tanımlayabilrisiniz. Ben örneklerimde $sayfa değişkenini kullandım.

$sayfa = new sayfalama;

Değişken üzerinde sınıfımızı oluşturup tanımladıktan sonra sıra sayfalama için gerekli bilgileri girmeye kalıyor. Bunun içinde sınıf üzerinden toplamKayit() , gosterilecekKayit() verilerini giriyoruz. Toplam kayıta mysql üzerinden bir sorgulama yaparak toplam kayıt sayımızı alıyoruz satır 1, 2 ve bunu sınıfımıza gönderiyoruz satır 3. Gösterilecek kayıta ise bir sayfada çıkmasını istediğimiz kayıt sayısını giriyoruz satır 4.

$sorgu = mysql_query('SELECT COUNT(*) as toplam FROM kayitlar');
$sonuc = mysql_fetch_assoc($sorgu);
$sayfa->toplamKayit( $sonuc['toplam'] );
$sayfa->gosterilecekKayit( 5 );

Sınıfımıza o anki sayfa sayısını sayfa() fonksiyonunu kullanarak iletiyoruz. Genelde sayfa sayısını GET ile alırız, örneğin 2. sayfa için kayitlar.php?s=2 şeklinde ve burada sayfa için kullandığımız GET değeri “s” olmuş oluyor. İşte burdaki değişkenide sınıfımıza iletiyoruz. Ve içerik için veritabanımıza göndereceğimiz kayıtları okuma sorgusunun son kısmına da sınıfımızın limit çıktısını ekliyoruz. Hepsi bu kadar.

$sayfa->sayfa($_GET['s']);
$limit = $sayfa->limit();
$kayitlar = mysql_query('SELECT * FROM kayitlar '. $limit);
...

Ve son olayda sayfa sayıları ve linklerini ekrana yansıtmak. Bunun için sınıftan toplam sayfa sayısını alarak for döngüsü ile kendinize has birşey hazırlayabilrisiniz. Fakat ben sınıfımda bu açıdanda bir pratiklik sağladım ve bununda fonksiyonunu hazırladım, dilediğiniz gibi yapabilirisiniz. En iyi yol bildiğiniz yoldur. Benim hazırladığım sınıfdaki fonksiyonun kullanımı işte böyle :

$sayfa-&gt;sayfalar('<a href="kayitlar.php?s=%sayfa%">%sayfa%</a> ');

Burada fonksiyon içerisine istediğiniz türde linkler hazırlayabilirsiniz. Fonksiyon bu yaptığınız link taslağını sayfa sayısı kadar tekrarlıyarak ekrana yazacaktır, sayfa sayısının yazmasını istediğiniz yerlere %sayfa% yazmanız yeterli. Sanırım şimdi tam oldu (:

PHP MYSQL sayfalama sınıfını indirmek için buradan buyrun. ( Dosyayı indirmek için sağ tıklayarak Farklı Kaydet’e basın. )
Soru ve sorunlarınızı bu yazı altından yorumlar yaparak dile getirebilirsiniz.

Kodlari indirmeden incelemek isteyenler için işte sayfalama sınıfı kodları :

	class sayfalama
	{
		var $toplamKayit;
		var $gosterilecekKayit;
		var $sayfa;
 
		function toplamKayit( $toplamKayit )
		{
			$this-&gt;toplamKayit = $toplamKayit;
		}
 
		function gosterilecekKayit( $gosterilecekKayit )
		{
			$this-&gt;gosterilecekKayit = $gosterilecekKayit;
		}
 
		function sayfaSayisi()
		{
			if( $this-&gt;toplamKayit &lt; 1 || $this-&gt;gosterilecekKayit &lt; 1 || $this-&gt;gosterilecekKayit &gt; $this-&gt;toplamKayit):
				return 0;
			else:
				return ceil( $this-&gt;toplamKayit / $this-&gt;gosterilecekKayit );
			endif;
		}
 
		function sayfa( $sayfa=0 )
		{
			$this-&gt;sayfa = $this-&gt;sayfaSayisi() &lt; $sayfa ? $this-&gt;sayfaSayisi()-1 : $sayfa-1;
			$this-&gt;sayfa = $this-&gt;sayfa &lt; 1 ? 0 : $this-&gt;sayfa;
		}
 
		function limit()
		{
			$limit = $this-&gt;sayfa*$this-&gt;gosterilecekKayit;
			return ' LIMIT ' . $limit . ' , ' . $this-&gt;gosterilecekKayit;
		}
 
		function sayfalar( $yazit='%sayfa% ' )
		{
			$sayfalar = $this-&gt;sayfaSayisi();
			if( $sayfalar &lt; 1 ):
				return false;
			endif;
			for($s=1; $s&lt;=$sayfalar; $s++):
				$yaz = str_replace('%sayfa%', $s, $yazit);
				echo $yaz;
			endfor;
		}
	}

Başka bir sanal serüvende görüşmek üzere hoşçakalın ..

Etiketler: , , , , , , , , ,

Bunlara da bir gözat:

"PHP ile sayfalama sınıfı (Yeni!)" bir yorum var »

  1. Güzel anlatım olms eline saglk (:

    Burak tarafından — 20 Kasım 2008 @ 20:43

Bu yazıdaki yorumlar için RSS beslemesi. Geri İzleme URL'si.

Yorum yapın

strefrextor, wp, skd ve teyt.org ©2009 - sitemap - 29 x 102 + 1 = 2959