MultiServis.Net //PHP El Kitabı

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>

Sayfa indekslerinin hazirlanmasi, Onceki ve Sonraki linklerinin olusturulmasi Yazar: Serkan Tarih: 01/03/02

<Onceki | 1 2 3 | Sonraki > seklinde hazirlanan sayfa indekslerinin olusturulmasi ve ozellestirilebilir site sablonlarin cikarilmasi...

Bu konu icin asagida hazirlanan ornek gercekten cok aciklayici.Herhangi bir karmasaya izin vermeden tum veritabani ciktilarinizi kendinize gore ozellestirebilirsiniz.Bunu asagida verilen program yardimiyla yapmak icin programci olmaya bile gereksinim yok :) Yanlizca Turkce'yi okuyor yaziyor olmak yeterli...

Programin basinda gerekli ozellestirmeleri yapiyorsunuz.Ardindan programin ortasina dogru yer alan bolumde istediginiz ciktiyi yapilandiriyorsunuz.Bununla ilgili ornek o bolumde yer aliyor.

Cozum :

<?php

/*=====================================================*/
/*==Program icinde kullanilan veritabani degiskenleri==*/
/*=====================================================*/
$sunucu = "localhost"; // Sunucu Adresi..Genelde localhost yazmak yeterli.
$kullaniciadi = ""; // Kullanici Adi
$sifre = ""; // Sifreniz
$veritabani = ""; // Veritabani ismi
$vt_tablosu = ""; // Kayitlarin gosterilecegi tablonun adi
$KayitLimiti = 10; // Sayfa basina kayit sayisi

/*==================================================*/
/*==Ileri/Geri linkleri icin font ve renk ayarlari==*/
/*==================================================*/
$oncekiDurum = "Onceki $KayitLimiti kayidi goster";
$sonrakiDurum = "Sonraki $KayitLimiti kayidi goster";
$oncekiLink = "< Onceki|";
$sonrakiLink = "|Sonraki >";
$fontailesi = "tahoma, helvetica";
$fontboyutu = "13px";
$fontrengi = "#000000";
$aktifdegilse = "#666666"; //1 2 3 seklindeki ve onceki sonraki sayfalarinda eger sayfa goruntuleniyorsa aktif link degilde text olarak gosterecegiz...
$fontagirligi = "700";
$textdekorasyonu = "none";

/*==========================================*/
/*==Durum cubugunda goruntulenecek bilgi====*/
/*==========================================*/
function sayfaDurum($i){
echo " $i Numarali sayfayi gormek icin tiklayiniz...";
}

/*====================================================*/
/*==Sunucu ve veritabani baglantilarini gerceklestir==*/
/*====================================================*/
$baglanti = mysql_connect("$sunucu","$kullaniciadi","$sifre")
or die ("Veritabani sunucusuna baglanilamiyor");
$veritabani = mysql_select_db("$veritabani",$baglanti)
or die("Veritabanina baglanilamiyor");

/*==================================================================================*/
/*==Eger oteleme degiskeni bir deger tasimiyorsa degerini sifir(0) yap==============*/
/*==================================================================================*/
if (!isset($oteleme) || $oteleme < 0) $oteleme=0;
if ($islem==ara) $oteleme = $oteleme - 1;

/*=====================================================================================================*/
/*==Bu degisken dize indexini tutmak icin kullaniyor.Eger degere sahip degilse sifir(0) olarak ayarla==*/
/*=====================================================================================================*/
/*=====================================================================================================*/
if (!isset($dizeindex) || $dizeindex < 0) $dizeindex=0;
if ($islem==ara) $dizeindex = $dizeindex - 1;

/*========================================*/
/*==Ana SQL sorgusunu hazirla=============*/
/*========================================*/
$sql="SELECT * FROM $vt_tablosu";
//$sql.=" WHERE kategori = ''";

/*============================================================================*/
/*==Bu sorgudan cikan kayit sayisi veya kayit satiri sayisi sonucta ayni sey==*/
/*============================================================================*/
$toplam_satiri_al = mysql_query($sql, $baglanti);
$toplam_satir = mysql_num_rows($toplam_satiri_al);

/*===========================================================*/
/*==sql sorgusunun sonuna limit ve oteleme degerlerini ekle==*/
/*===========================================================*/
$sql.=" Limit $oteleme,$KayitLimiti";

/*=======================================================================*/
/*==Sorgula ve sonuc dizisini limit,oteleme ile veritabanindan al getir==*/
/*=======================================================================*/
$sorgula = mysql_query($sql, $baglanti);
while ($sorgu_sonucu = mysql_fetch_array($sorgula)){

/*=================================*/
/*==Dize Index'ini 1 arttir========*/
/*=================================*/
$dizeindex++;

/*============================================*/
/*====== SONUCLAR BURAYA GIRIYOR... ==========*/
/*============================================*/

//**Bir Ornek:
//$kategori=$sorgu_sonucu['KATEGORI'];
//$baslik=$sorgu_sonucu['BASLIK'];
//echo "$dizeindex. - $kategori - $baslik<br>";

//Demo olarak gosterdigimiz sayfada buradaki kod su sekilde idi ornegin:
//http://www.turk-php.com/ornekler/mysql/onceki_sonraki.php

//**Bir Ornek:
//$Author=$sorgu_sonucu['Author'];
//$Content=$sorgu_sonucu['Content'];
//echo "$dizeindex. - $Author - $Content<br>";

}

/*=======================================================================*/
/*==Limit degerinden az kayit donerse veritabanindan, bir sey gosterme===*/
/*=======================================================================*/
if ($toplam_satir <= $KayitLimiti) {
// Limitten az deger dondu.
} else {

/*=======================================================*/
/*==Eger o andaki oteleme sifira esit degilse============*/
/*==Linki goster. Degilse(if>0) yanlizca texti goster====*/
/*=======================================================*/
if ($oteleme!=0) { $onceki_oteleme = intval($oteleme-$KayitLimiti);
echo "<a style='font-family:$fontailesi; font-size:$fontboyutu; color:$fontrengi; font-weight:$fontagirligi;"
." text-decoration:$textdekorasyonu;' onmouseover=\"window.status='$oncekiDurum'; return true\""
." onmouseout=\"window.status=''\" href=\"$PHP_SELF?oteleme=$onceki_oteleme&dizeindex=$onceki_oteleme\">"
."$oncekiLink</a>&nbsp;";
}
else { echo "<span style='font-family:$fontailesi; font-size:$fontboyutu; color:$aktifdegilse;"
." font-weight:$fontagirligi; text-decoration:$textdekorasyonu;'>$oncekiLink</span>&nbsp;";
}

/*=============================================================================*/
/*==Tum satir sayisini kayit limiti sayisina bol ve boylece sayfa adedini bul==*/
/*=============================================================================*/
$toplamSayfalar = intval($toplam_satir/$KayitLimiti);

/*========================================================================*/
/*==Bolum isleminden kalan olursa toplamSayfalar degiskenini bir arttir ==*/
/*========================================================================*/
if ($toplam_satir%$KayitLimiti) $toplamSayfalar++;

/*=================================================================*/
/*==for() dongusu ile , 1 2 3 linklerini her sayfa icin goruntule==*/
/*=================================================================*/
for ($i=1;$i<=$toplamSayfalar;$i++) {

/*==================================================================*/
/*==Goruntulenen sayfanin linkini normal text olarak goster.=======*/
/*==================================================================*/
if ((intval($oteleme/$KayitLimiti)) == (intval($i-1))) {

echo "&nbsp;<span style='font-family:$fontailesi; font-size:$fontboyutu; color:$aktifdegilse;"
." font-weight:$fontagirligi; text-decoration:$textdekorasyonu;'>$i</span>&nbsp;";

} else {
/*=====================================================================*/
/*==Goruntulenen sayfa degilse, sonrakiOteleme'yi kur ve linki goster==*/
/*======================================================================*/
$sonrakiOteleme= intval($KayitLimiti*($i-1));

echo "&nbsp;<a style='font-family:$fontailesi; font-size:$fontboyutu; color:$fontrengi;"
." font-weight:$fontagirligi; text-decoration:$textdekorasyonu;' onmouseover=\"window.status='";
sayfaDurum($i);
echo "'; return true\" onmouseout=\"window.status=''\""
." href=\"$PHP_SELF?oteleme=$sonrakiOteleme&dizeindex=$sonrakiOteleme\">$i</a>&nbsp;";
}
}

/*==========================================================================*/
/*==Sayfa son sayfa degilse,$sonrakiOteleme'yi kur ve linki goster==========*/
/*==============Son sayfa ise linkin aktifligini kaldir=====================*/
/*==========================================================================*/
if (!(intval(((intval($oteleme/$KayitLimiti))+1))==$toplamSayfalar) && $toplamSayfalar!=1) {
$sonrakiOteleme = intval($oteleme+$KayitLimiti);

echo "&nbsp;<a style='font-family:$fontailesi; font-size:$fontboyutu; color:$fontrengi; font-weight:$fontagirligi;"
." text-decoration:$textdekorasyonu;' onmouseover=\"window.status='$sonrakiDurum'; return true\""
." onmouseout=\"window.status=''\" href=\"$PHP_SELF?oteleme=$sonrakiOteleme&dizeindex=$sonrakiOteleme\">$sonrakiLink</a><p>\n";
}
else echo "&nbsp;"
."<span style='font-family:$fontailesi; font-size:$fontboyutu; color:$aktifdegilse;"
." font-weight:$fontagirligi; text-decoration:$textdekorasyonu;'>$sonrakiLink</span><p>";
}

mysql_close($baglanti);
//Bitti
?>

Serkan Hadi Ceylani
serkan@turk-php.com

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>