İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Güzel bir sayfalama şekli... (yardım)

B

besturk.net

Misafir
Merhaba arkadaşlar bi sitede gördüm ve çok hoşuma gitti... Elinizde bunun benzeri bir sayfalama kodu varsa ve paylaşırsanız sevinirim....

O sayfalama şöyle idi ;
Geri [ 1 ] [ 2 ] [ 3 ] [ 4 ] İleri (buradan 4'e tıkladığımızda aşağıdaki gibi oluyor)
Geri [ 4 ] [ 5 ] [ 6 ] [ 7 ] İleri (buradan 7'ye tıkladığımızda aşağıdaki gibi oluyor)
Geri [ 7 ] [ 8 ] [ 9 ] [ 10 ] İleri
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
soyle bir mantik kullanabilirsin heralde, url den baslat degiskeni alirsa, o ve ondan sonraki 4 sayfanin linkini verir, almazsa 1 den baslatir 5 e kadar.

Kod:
<?
//
//

if (!$_GET[baslat]) {
$baslat = 1;
}
else {
$baslat = $_GET[baslat];
}

for ($i = $baslat; $i <= $baslat + 4; $i++) {
echo "<a href='goster.php?baslat=$i'>$i</a>";
}
?>
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
MySQL den cektigini varsayarsak

1. Toplam veriyi hesapla
2. Toplam sayfa sayisini hesapla
3. Eger (baslatilan sayfa + 4) buyuk ise toplam sayfa sayisindan donguyu baslatilan sayfadan toplam sayfaya kadar dondur, degilse baslatilan sayfadan , (baslatilan sayfa +4) e kadar dondur.

gibi.
 

AkrepList

0
İyinet Üyesi
Katılım
16 Şubat 2003
Mesajlar
2,489
Reaction score
0
Konum
Bursa Ankara
angelo anlamiyormusun arkadas hazir istiyor hazir, yoksa mantigini bence biliyordur

arkadaslar biraz su isleri madem yapacaksiniz kendiniz birseyler yapsaniz diyorum?
 
S

Skeleton

Misafir
AkrepList' Alıntı:
angelo anlamiyormusun arkadas hazir istiyor hazir, yoksa mantigini bence biliyordur

arkadaslar biraz su isleri madem yapacaksiniz kendiniz birseyler yapsaniz diyorum?

katılıyorum. php biliyorsan 2 dakika kafa yorduktan sonra 10 dakikada yazabileceğin bir olay. eğer yapamıyor isen php veya programlama bilmiyorsundur. eğer bilmiyorsan da bu işlerle uğraşma sen bence.
 
W

www_sozluk_net

Misafir
Merhaba,

www.sitearsivi.com da kategorilerin bulundugu sayfada kullandigim sayfalama sistemi asagida.

sayfalamayi en iyi bu adresten gorebilirsin.
http://www.sitearsivi.com/index.php?sa=diger&a=kategori&ID=20
(en cok site bu kategoride oldugu için sayfalama daha belirgin)

PHP:
<?
    if (empty($perpage)) $perpage = 10; //sayfa basina kac veri
    if (empty($pperpage)) $pperpage = 9;	//!!! sadece 5,7,9,11,13 (tek sayilar) !!!! (kac tane sayfa gozukecek mesela: 3 4 (5) 6 7 ise 5 oluyor)
    if (empty($offset)) $offset = 0;
    if (empty($poffset)) $poffset = 0;



    $amount = mysql_db_query($db_adi, "SELECT count(*) FROM site where onay='E'");   // burayi db ne gore ayarlaman lazim
    $amount_array = mysql_fetch_array($amount);
    $pages = ceil($amount_array["0"] / $perpage);
    $actpage = ($offset+$perpage)/$perpage;
    $maxoffset = ($pages-1)*$perpage;
    $maxpoffset = $pages-$pperpage;
    $middlepage=($pperpage-1)/2;
    if ($maxpoffset<0) {$maxpoffset=0;}
    echo "<p align=\"center\">\n";
    if ($pages) {                                       // eger sayfalar > 0 ise yazdir
        echo "Sayfalar :\n";
	if ($offset) {
    	    $noffset=$offset-$perpage;
            $npoffset = $noffset/$perpage-$middlepage;
	    if ($npoffset<0) {$npoffset=0;}
            if ($npoffset>$maxpoffset) {$npoffset = $maxpoffset;}
	    echo "[<a href=\"$PHP_SELF?offset=0&poffset=0\">««</a>] ";
	    echo "[<a href=\"$PHP_SELF?offset=$noffset&poffset=$npoffset\">«</a>] ";
    	}
        for($i = $poffset; $i< $poffset+$pperpage && $i < $pages; $i++) {
	    $noffset = $i * $perpage;
    	    $npoffset = $noffset/$perpage-$middlepage;
    	    if ($npoffset<0) {$npoffset = 0;}
    	    if ($npoffset>$maxpoffset) {$npoffset = $maxpoffset;}
	    $actual = $i + 1;
    	    if ($actual==$actpage) {
 		echo "(<b>$actual</b>) ";
            } else {
 		echo "[<a href=\"$PHP_SELF?offset=$noffset&poffset=$npoffset\">$actual</a>] ";
	    }
	}
	if ($offset+$perpage<$amount_array["0"]) {
    	    $noffset=$offset+$perpage;
    	    $npoffset = $noffset/$perpage-$middlepage;
    	    if ($npoffset<0) {$npoffset=0;}
    	    if ($npoffset>$maxpoffset) {$npoffset = $maxpoffset;}
	    echo "[<a href=\"$PHP_SELF?offset=$noffset&poffset=$npoffset\">»</a>] ";
	    echo "[<a href=\"$PHP_SELF?offset=$maxoffset&poffset=$maxpoffset\">»»</a>] ";
        }
    }
    echo "</p>\n";
?>


sanirim isini gorur. senin dedigin yontemin aynisi deil ama daha iyisi diyebilirim :p
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Hazir nasil oluyor ki, her sitenin yapisi veri mimarisi farkli, boyle seyin haziri olmaz.
 
W

www_sozluk_net

Misafir
sayfalama'nin nasil bir mimari si olabilir ki ???

1 2 3 4 5 diye yazdirirken nasil bir mimari kullanabilirim dusunuyorum da. kendi hakkimda karamsarliga kapiliyorum. yaratıcılıgım kalmamış :p

Kalp kırdıysam ozur :)
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
$amount = mysql_db_query($db_adi, "SELECT count(*) FROM site where onay='E'"); // burayi db ne gore ayarlaman lazim

Bunun gibi farkli mimariler olabilir veya ben text dosyamdan 2500 veri cekip bunu sayfa basina 817 tane kayit gosterecek sekilde yapilandirmak istiyor olabilirim. Copy & paste benim dostum olamiyor boyle bir durumda. Sanirim amac sadece 1 2 3 4 5 yazdirmak degil, onlarin isaret ettigi bazi degerler var. Biraz pseudo koddan calisip aramaya inanirsak tencere taklavat seti satma scripti elinde olan var mi gibi sorularla daha az karsilasirdik. Kalbi kirilan sapkayi one koysun ozur dileme:)
 

MoD

0
İyinet Üyesi
Katılım
8 Nisan 2005
Mesajlar
1,722
Reaction score
2
Konum
Bursa
Angelo' Alıntı:
$amount = mysql_db_query($db_adi, "SELECT count(*) FROM site where onay='E'"); // burayi db ne gore ayarlaman lazim

Bunun gibi farkli mimariler olabilir veya ben text dosyamdan 2500 veri cekip bunu sayfa basina 817 tane kayit gosterecek sekilde yapilandirmak istiyor olabilirim. Copy & paste benim dostum olamiyor boyle bir durumda. Sanirim amac sadece 1 2 3 4 5 yazdirmak degil, onlarin isaret ettigi bazi degerler var. Biraz pseudo koddan calisip aramaya inanirsak tencere taklavat seti satma scripti elinde olan var mi gibi sorularla daha az karsilasirdik. Kalbi kirilan sapkayi one koysun ozur dileme:)

news edasiyla +1 yazmak dusmus payimiza bu yazilanlarin akabinde. mesaj cok net.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst