• 17-03-2013, 18:23:44
    #1
    php bilgim pek yok. aşağıdaki sayfalama fonk. düzenlemeyemedim istediğim gibi. şu şekilde olmasını istiyorum:
    1 2 3 4 5 6 ... 10 .. [son sayfa]
    1..8 9 10 11 12 ... 16 .. [son sayfa] (8. sayfadayken) şeklinde olacak. bunun için yardımcı olabilir misiniz?
    $max=10;
    $page=1;
    //$nr2=1746;
    $nr2 = mysql_num_rows(mysql_query("Select * from videolar"));
    function birdensuna($sayi,$maximum) { 
        if ( $sayi >= 1 AND $sayi <= $maximum ) { return $sayi; } 
        else { return $maximum; } 
    } 
    
    
    if($nr2>$max){
    $sayfa_sayisi = ceil($nr2/$max); 
    if ( $page < 1 OR $page > $sayfa_sayisi ) { $page = 1; } 
    $sayfalar_araligi = ceil($sayfa_sayisi/12); 
    $sayfalanacak = array(1,$sayfa_sayisi,birdensuna(($page-20),$sayfa_sayisi) ,birdensuna(($page-15),$sayfa_sayisi),birdensuna(($page-10),$sayfa_sayisi) ,birdensuna(($page-5),$sayfa_sayisi),birdensuna(($page-2),$sayfa_sayisi) ,birdensuna(($page-1),$sayfa_sayisi),$page ,birdensuna(($page+1),$sayfa_sayisi),birdensuna(($page+2),$sayfa_sayisi) ,birdensuna(($page+5),$sayfa_sayisi),birdensuna(($page+10),$sayfa_sayisi) ,birdensuna(($page+15),$sayfa_sayisi),birdensuna(($page+20),$sayfa_sayisi)); 
    for ($i=$page;$i>0;$i=$i-$sayfalar_araligi) { $sayfalanacak[] = $i; } 
    for ($i=$page;$i<$sayfa_sayisi;$i=$i+$sayfalar_araligi) { $sayfalanacak[] = $i; } 
    $sayfalanacak = array_unique($sayfalanacak);
    sort($sayfalanacak); 
    }
  • 17-03-2013, 18:35:04
    #2
    $sayfada = 5; // sayfada gösterilecek içerik miktarını belirtiyoruz.
     
    $sorgu = mysql_query('SELECT COUNT(*) AS toplam FROM mesajlar');
    $sonuc = mysql_fetch_assoc($sorgu);
    $toplam_icerik = $sonuc['toplam'];
     
    $toplam_sayfa = ceil($toplam_icerik / $sayfada);
     
    $sayfa = isset($_GET['sayfa']) ? (int) $_GET['sayfa'] : 1;
     
    if($sayfa < 1) $sayfa = 1;
    if($sayfa > $toplam_sayfa) $sayfa = $toplam_sayfa;
     
    $limit = ($sayfa - 1) * $sayfada;
    $sorgu = mysql_query('SELECT * FROM mesajlar LIMIT ' . $limit . ', ' . $sayfada);
     
    while($icerik = mysql_fetch_assoc($sorgu)) {
       // ...
    }
     
    for($s = 1; $s <= $toplam_sayfa; $s++) {
       if($sayfa == $s) { // eğer bulunduğumuz sayfa ise link yapma.
          echo $s . ' ';
       } else {
          echo '<a href="?sayfa=' . $s . '">' . $s . '</a> ';
       }
    }


    $sayfa_goster = 11; // gösterilecek sayfa sayısı
     
    $en_az_orta = ceil($sayfa_goster/2);
    $en_fazla_orta = ($toplam_sayfa+1) - $en_az_orta;
     
    $sayfa_orta = $sayfa;
    if($sayfa_orta < $en_az_orta) $sayfa_orta = $en_az_orta;
    if($sayfa_orta > $en_fazla_orta) $sayfa_orta = $en_fazla_orta;
     
    $sol_sayfalar = round($sayfa_orta - (($sayfa_goster-1) / 2));
    $sag_sayfalar = round((($sayfa_goster-1) / 2) + $sayfa_orta);
     
    if($sol_sayfalar < 1) $sol_sayfalar = 1;
    if($sag_sayfalar > $toplam_sayfa) $sag_sayfalar = $toplam_sayfa;
     
    if($sayfa != 1) echo ' <a href="?sayfa=1">&lt;&lt;İlk sayfa</a> ';
    if($sayfa != 1) echo ' <a href="?sayfa='.($sayfa-1).'">&lt;Önceki</a> ';
     
    for($s = $sol_sayfalar; $s <= $sag_sayfalar; $s++) {
        if($sayfa == $s) {
            echo '[' . $s . '] ';
        } else {
            echo '<a href="?sayfa='.$s.'">'.$s.'</a> ';
        }
    }
     
    if($sayfa != $toplam_sayfa) echo ' <a href="?sayfa='.($sayfa+1).'">Sonraki&gt;</a> ';
    if($sayfa != $toplam_sayfa) echo ' <a href="?sayfa='.$toplam_sayfa.'">Son sayfa&gt;&gt;</a>';
    Kolay Gelsin
    Edit :Alıntıdır - Çalışıyor
  • 18-03-2013, 15:37:05
    #3
    D62 adlı üyeden alıntı: mesajı görüntüle
    Kolay Gelsin
    Edit :Alıntıdır - Çalışıyor
    siz mesajımı okumamışsınız sanırım tam olarak. php bilgim pek yok. kullandığım scriptte yer alan değişkenler kullanarak 1 2 3 4 5 6 ... 10.. Son Sayfa tarzında sayfalama konusunda yardımcı olabilecek var mı diye mesaj yazmıştım. ilk sayfa sonraki sayfa şeklinde butonlara ihtiyaç yok şimdilik.
    ama yinede teşekkürler ilgin için
  • 18-03-2013, 16:48:05
    #4
    orta seviye üzerinde php bilgisi gerektirebilecek bir sayfalama dan bahsediyoruz. tek başınıza yapmanız çok zor, başkasınında bir forum post'u ile işinizi çözmesi daha zor. ücretli destek talep edin..
  • 21-03-2013, 00:36:20
    #5
    ücretsiz yardım edebilecek arkadaşlar varsa yardımcı olabilirler mi?