• 01-05-2007, 21:48:45
    #1
    Forumda dolaşırken bir sayfalama örneği gördüm, aynen şöyle;

       <?
    include("admin/dbconnect.php");
    $sayfa_basina = 5; //limit
    $page = $_GET['page'] ? $_GET['page'] : 0;
    $girdi2=mysql_query("select id from haberler");
    $girdi=mysql_num_rows($girdi2);
    $toplam=ceil($girdi/$sayfa_basina);
    $simdi = $page * $sayfa_basina;
    $veri = mysql_query("SELECT * FROM haberler order by tarih desc limit $simdi, $sayfa_basina");
    while($cikart=mysql_fetch_array($veri)) {
    
    // Cover Web sitesinin haberleri
    $haber = "Eklenme Tarihi ".$cikart[tarih];
    $haber .= "<br>".$cikart[habermetni];
    $haber .= "<br>";
    // Echo kismina ne yazalim derdi bitti.
    echo $haber;
    
     }
    ####Sayfa: [99] 98 97 96 gibi çıkaralım####
    for ($i = $toplam-1; $i >= 0; $i--)
    {
    if(!$page != $i) { printf('<a href="sayfa.php?page=%d">%d</a> ', $i, $i+1); }  
    else { printf('<a href="index.php?page=%d">[%d]</a> ', $i, $i+1); }
    } ?>

    Çok iyi bir örnek ama biraz geliştirmek gerek..

     ####Sayfa: [99] 98 97 96 gibi çıkaralım####
    gibi tersten değilde 1 2 [3] 4 5 gibi nasıl sıralayabiliriz?

    bu sayfanın adı sayfa.php, direk sayfa.php olarak girince hata veriyor böyle girdiğimizde sayfa.php?page=1 içeriğinin çıkmasını nasıl sağlarız?

    Teşekkürler.
  • 01-05-2007, 22:18:28
    #2
    ####Sayfa: [99] 98 97 96 gibi çıkaralım####
    for ($i = $toplam-1; $i >= 0; $i--)

    üsttekini alttaki gibi deiş

    for ($i = 0; $i <= $toplam-1; $i++)
  • 01-05-2007, 22:41:21
    #3
    çok güzel bir örnek bir tane daha var o daha kapsamlı cevizde vardı galiba biliyodur herkez.
  • 02-05-2007, 00:12:52
    #4
    Tontonq adlı üyeden alıntı: mesajı görüntüle
    ####Sayfa: [99] 98 97 96 gibi çıkaralım####
    for ($i = $toplam-1; $i >= 0; $i--)

    üsttekini alttaki gibi deiş

    for ($i = 0; $i <= $toplam-1; $i++)
    çok güzel oldu, çok teşekkürler.

    Karacoder adlı üyeden alıntı: mesajı görüntüle
    çok güzel bir örnek bir tane daha var o daha kapsamlı cevizde vardı galiba biliyodur herkez.
    - direk sayfa.php yazınca hata vermese, sayfa.php?page=0 gibi hatasız çıksa,
    - İleri ve Geri butonları olsa bu da es geçilebilir bir örnek değil.

    şu hatayı önlesek çok güzel olacak..
  • 02-05-2007, 00:23:57
    #5
     $page = $_GET['page'] ? $_GET['page'] : 0;
    ile

     if(intval($_GET['page']))
        {
    $page = intval($_GET['page']);
        }else{
    $page= 0; 
        }
    kısmını değiştirirsen, boş bir değer geldiği zaman page değişkenini 0 a eşitler.
  • 02-05-2007, 09:25:51
    #6
    eşitliyor eşitlemesine de başında ufak bir hata veriyor..

    Notice
    : Undefined index: sayfa in c:\program files\easyphp1-8\www\deneme\sayfa.php on line 7

    7. satır verdiğin kodun ilk satırı.
  • 02-05-2007, 11:03:32
    #7
    hata değil not
  • 04-05-2007, 12:02:33
    #8
    Misafir adlı üyeden alıntı: mesajı görüntüle
    if(intval(@$_GET['page']))
    {
    $page = intval(@$_GET['page']);
    }else{
    $page= 0;
    }
    teşekkürler işte bu sorunsuz.

    edit / yapamadığım birşey daha çıktı..

    xx.php?page=%d&cal=X

    fonksiyonun sonunda yukarıdaki gibi sayfalama linki var. X yerine $_GET['cal'] ekleyince olmuyor. bunu nasıl linkleyeceğim