lostyazilim

Sayfalama özelliği nasıl yapılır?

14 Mesajlar 2.246 Okunma
lstbozum
wmaraci reklam

Kindumina Kindumina Sms Onayı Gerekli Banlı Kullanıcı
  • Üyelik 04.07.2013
  • Yaş/Cinsiyet 38 / E
  • Meslek bilgisayar mühendisi
  • Konum Ankara
  • Ad Soyad ** **
  • Mesajlar 100
  • Beğeniler 24 / 17
  • Ticaret 0, (%0)
php bilsem yardım etmek isterdim.php tarafını bilmiyorum fakat ben aspx de sıkıştığım zaman msdnye konu açıyorum phpnınde belki öyle bir kısmı vardır bir araştır derim.open source çok vardır
 

 

wmaraci
reklam

meteoncu meteoncu slaughter of the soul Kullanıcı
  • Üyelik 02.08.2013
  • Yaş/Cinsiyet 28 / E
  • Meslek öğrenci
  • Konum Balıkesir
  • Ad Soyad ** **
  • Mesajlar 15
  • Beğeniler 0 / 2
  • Ticaret 0, (%0)
Sayfalamada 2 aşama vardır:

1) Tablomuzdaki içerik sayısı, bir sayfada gösterilmek istenen içerik sayısına bölünür, küsaratlıysa üst sayıya yuvarlanır (ceil ile). Kullanıcı sayfalar arasında geçiş yapabilsin diye sayfa sayısı kadar, numaralandırılmış linkler verilir. (for döngüsüyle)

2) Sayfalar arasında link ile geçiş yapabiliyoruz tamam ama içinde bulunulan sayfaya göre içerik göstermemiz gerekiyor. Bunun için de içeriği listelettiğimiz mysql sorgusunda ufak bir eklemeyle bulunulan sayfaya göre içerik göstertebiliyoruz.

Az laf çok kod di mi :)



//şimdi içerik sayısını, bir seferde gösterilmek istenen içerik sayısı, sayfa sayısını vs. bilgileri elde edeceğiz
//senin düzenlemen gereken $kac_tane= ile başlayan satırdaki sorgunun tablo adı ve $gosterim=10 yazan yere de bir sayfada göstermek istediğin içerik sayısıdır.


$kac_tane=mysql_num_rows(mysql_query("SELECT * FROM tablo_adi"));
$sayfa=$_GET['sayfa_no'];$gosterim=10;
$sayfa_sayisi=ceil($kac_tane/$gosterim);
if($sayfa>$sayfa_sayisi || $sayfa<1 || !is_numeric($sayfa))
{$sayfa=1;}
$son=($sayfa-1)*$gosterim;

//sayfa sayısı kadar numaralandırılmış link üretiyoruz
for($i=1;$i<$sayfa_sayisi;$i++){

if($sayfa!=$i){
echo "$i";
}else{
echo "$i";
}//eğer bulunulan sayfa bastırılacak numarayla aynıysa kontrolü sonu

}//döngü sonu

?>

Buraya kadar 1. aşamayı yaptık. Şimdi sırada 2. aşama olan bulunulan sayfaya göre içerik göstermek var. Bunu da içerik çektiğimiz mysql sorgusunun sonuna ufak bir eklemeyle lafı uzatmadan hallediyoruz.

$yazilar=mysql_query("SELECT * FROM yazilar");

//yukarıdaki şekilde bir sorgumuz var diyelim. Bunun sonuna LIMIT $son,$gosterim şeklinde bir ekleme yapacağız ve işimiz tamam olacak

$yazilar=mysql_query("SELECT * FROM yazilar LIMIT $son,$gosterim");

?>

Kodlardan dolayı yazı uzun görünüyor ama asıl mantık sayfanın en başında belirttiğim 2 aşamadır. Tüm bunlar o 2 aşamanın gerçekleşmiş hâlidir. Umarım sorununu çözer kodlarım.
 

 

Kişisel sitem, mikro bloğum, tam bloğum, fotoğraf galerim: http://meteoncu.com

BuckBarry BuckBarry WM Aracı Kullanıcı
  • Üyelik 06.12.2012
  • Yaş/Cinsiyet 30 / E
  • Meslek Öğrenci
  • Konum İstanbul Anadolu
  • Ad Soyad F** Ö**
  • Mesajlar 972
  • Beğeniler 34 / 164
  • Ticaret 7, (%100)

meteoncu adlı üyeden alıntı

Sayfalamada 2 aşama vardır:

1) Tablomuzdaki içerik sayısı, bir sayfada gösterilmek istenen içerik sayısına bölünür, küsaratlıysa üst sayıya yuvarlanır (ceil ile). Kullanıcı sayfalar arasında geçiş yapabilsin diye sayfa sayısı kadar, numaralandırılmış linkler verilir. (for döngüsüyle)

2) Sayfalar arasında link ile geçiş yapabiliyoruz tamam ama içinde bulunulan sayfaya göre içerik göstermemiz gerekiyor. Bunun için de içeriği listelettiğimiz mysql sorgusunda ufak bir eklemeyle bulunulan sayfaya göre içerik göstertebiliyoruz.

Az laf çok kod di mi :)



//şimdi içerik sayısını, bir seferde gösterilmek istenen içerik sayısı, sayfa sayısını vs. bilgileri elde edeceğiz
//senin düzenlemen gereken $kac_tane= ile başlayan satırdaki sorgunun tablo adı ve $gosterim=10 yazan yere de bir sayfada göstermek istediğin içerik sayısıdır.


$kac_tane=mysql_num_rows(mysql_query("SELECT * FROM tablo_adi"));
$sayfa=$_GET['sayfa_no'];$gosterim=10;
$sayfa_sayisi=ceil($kac_tane/$gosterim);
if($sayfa>$sayfa_sayisi || $sayfa<1 || !is_numeric($sayfa))
{$sayfa=1;}
$son=($sayfa-1)*$gosterim;

//sayfa sayısı kadar numaralandırılmış link üretiyoruz
for($i=1;$i<$sayfa_sayisi;$i++){

if($sayfa!=$i){
echo "$i";
}else{
echo "$i";
}//eğer bulunulan sayfa bastırılacak numarayla aynıysa kontrolü sonu

}//döngü sonu

?>

Buraya kadar 1. aşamayı yaptık. Şimdi sırada 2. aşama olan bulunulan sayfaya göre içerik göstermek var. Bunu da içerik çektiğimiz mysql sorgusunun sonuna ufak bir eklemeyle lafı uzatmadan hallediyoruz.

$yazilar=mysql_query("SELECT * FROM yazilar");

//yukarıdaki şekilde bir sorgumuz var diyelim. Bunun sonuna LIMIT $son,$gosterim şeklinde bir ekleme yapacağız ve işimiz tamam olacak

$yazilar=mysql_query("SELECT * FROM yazilar LIMIT $son,$gosterim");

?>

Kodlardan dolayı yazı uzun görünüyor ama asıl mantık sayfanın en başında belirttiğim 2 aşamadır. Tüm bunlar o 2 aşamanın gerçekleşmiş hâlidir. Umarım sorununu çözer kodlarım.



yaptık hocam elinize sağlık yazı için
 

 

aerdogan aerdogan Kullanıcı
  • Üyelik 28.06.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek Full Stack Web Developer
  • Konum İstanbul Anadolu
  • Ad Soyad A** E**
  • Mesajlar 259
  • Beğeniler 10 / 37
  • Ticaret 7, (%100)
Mantığını anlatayım. Sql kodunda çekilecek kayıt sayısını belirtirsin Limit 10 şeklinde. Sayfa numaralandırmalarını bu kayıtların altında yazdırırsın. Tabiki kayıt sayısını kontrol ettirerek. Yani 10'ar 10'ar listeletmeden örnek verirsek. 25 tane kayıt varsa 3 tane link bunları görüntülemeye yeterli olacaktır(1 2 3 şeklinde 3 link. ). Bu linklerde get metodu ile sayfa numarasını göndeririz. site.com/index.php?sayfa=2 şeklinde. Bu değerleri gönderdiğimiz sayfadan(= bulunduğumuz sayfaya gönderdik) çekeriz. Gönderdiğimiz değeri 2 olarak sayıyorum bu sefer kayıtları çeken sql komutumuzun limit sayasını Limit 10, 20 şeklinde değiştiriyoruz. Böylelikle veritabanında 10 ve 20 kayıt arasını çekecektir.
 

 

Webayt İçerik Yönetim Sistemi
Modüler, Google Dostu ve 100+ Dil Desteği!

Serplink Sıralama Takibi
Yakında Hizmetinizde!
wmaraci
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al