Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

PHP de sayfalarken sayfa sayısını listeleme

<?php include('mysql.php'); 

$page=$_GET['page'];

if ($page=="" || !is_numeric($page)) {
$page=1;
}
$kacar=10;
$kayit_sayisi=mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM problem"));
$sayfa_sayisi=$kayit_sayisi['0']/$kacar;
if ($kayit_sayisi%$kacar!=0) {
$sayfa_sayisi++;
}
$nerden=($page*$kacar)-$kacar;
$sorgu=mysql_query("SELECT * FROM problem WHERE lang = 2 ORDER BY id DESC LIMIT $nerden,$kacar");

while ($veri=mysql_fetch_array($sorgu)) {
 $title=$veri["title"];
   $id=$veri["id"];
   
}
print ''.$page.'';
for ($i=1; $i<=$sayfa_sayisi; $i++) { 

echo '<a href=index.php?page='.$i.'>'.$i.'</a>'; 


}?>



Buradaki sayfalarken sayfa sayısını gösterirken hepsini değil sadece 3 üst sayfasını ve 3 alt sayfasını göstermesini istiyorum.
Eklediğim resim dosyasında görürsünüz ne demek istediğimi ...

Ekli Dosyalar

+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • Hasan adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    63 cevap - 0 soru
    for döngünü şöyle değiştirip dene bakalım...


    print ''.$page.''; //den sonra
    
    
    
    //önceki sayfa...
    if ($page > 1) {
       $onceki_sayfa = $page - 1;
       echo '<a href="index.php?page='.$onceki_sayfa.'"> Önceki </a>';
    }
    
    //sayfa numaraları
    $range = 3;
    for ($i = ($page - $range); $i < (($page + $range)  + 1); $i++) {
       if (($i > 0) && ($i <= $sayfa_sayisi)) {
          if ($i == $page) {
             echo " <strong>$i</strong> ";
          } else {
    		 echo '<a href="index.php?page='.$i.'">'.$i.'</a>'; 
          }
       }
    }
    
    //sonraki sayfa...
    if ($page != $sayfa_sayisi) {
       $sonraki_sayfa = $page + 1;
       echo '<a href="index.php?page='.$sonraki_sayfa.'"> Sonraki </a>';
    }
    
    

Cevaplar

  • protest adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    32 cevap - 6 soru
    for ($i=1; $i<=$sayfa_sayisi; $i++) {
    	echo '<a href=index.php?page='.$i.'>'.$i.'</a>';
    	}
    

    Bu kısmını 3 duruma göre yapman lazım.
    ilk durum; $sayfa_sayisi<=4 ise
    ikinci durum; senin yaptigin kısım ama 1 den sona kadar değil, bulundugun sayfanın 3 eksiginden bulundugun sayfanın 3 fazlasına kadar
    üçüncü durum; son sayfaya 4 sayfa ve daha az kaldıysa ayrı yapman lazım
    yani;

    if ($bulundugunsayfa<=4){
    for ($i=1; $i<=7; $i++) {
    	echo '<a href=index.php?page='.$i.'>'.$i.'</a>';
    }
    }
    
    if ($bulundugunsayfa>4 and $bulundugunsayfa<$sayfa_sayisi-4){
    for ($i=$bulundugunsayfa-3; $i<=$bulundugunsayfa+3; $i++) {
    	echo '<a href=index.php?page='.$i.'>'.$i.'</a>';
    }
    }
    
    if ($bulundugunsayfa>=$sayfa_sayisi-4){
    for ($i=$bulundugunsayfa-3; $i<=sayfa_sayisi; $i++) {
    	echo '<a href=index.php?page='.$i.'>'.$i.'</a>';
    }
    }
    

    typo, sytax error falan yapmış olabilirim. sen kendine göre düzenlersin.
    • spywaredz adlı üyenin fotoğrafı spywaredz
      <?php include('mysql.php'); 
      
      $page=$_GET['page'];
      
      if ($page=="" || !is_numeric($page)) {
      $page=1;
      }
      $kacar=10;
      $kayit_sayisi=mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM problem"));
      $sayfa_sayisi=$kayit_sayisi['0']/$kacar;
      if ($kayit_sayisi%$kacar!=0) {
      $sayfa_sayisi++;
      }
      $nerden=($page*$kacar)-$kacar;
      $sorgu=mysql_query("SELECT * FROM problem WHERE lang = 2 ORDER BY id DESC LIMIT $nerden,$kacar");
      
      while ($veri=mysql_fetch_array($sorgu)) {
       $title=$veri["title"];
         $id=$veri["id"];
         
      }
      print ''.$page.'<br>';
      for ($i=1; $i<=$sayfa_sayisi; $i++) { 
      
      if ($page<=4){
      for ($i=1; $i<=7; $i++) {
      	    echo '<a href=index.php?page='.$i.'>'.$i.'</a>';
      	}
      	}
       
      if ($page>4 and $page<$sayfa_sayisi-4){
      	for ($i=$page-3; $i<=$page+3; $i++) {
      	    echo '<a href=index.php?page='.$i.'>'.$i.'</a>';
      	}
      	}
      	 
      if ($page>=$sayfa_sayisi-4){
      	for ($i=$page-3; $i<=sayfa_sayisi; $i++) {
      	    echo '<a href=index.php?page='.$i.'>'.$i.'</a>';
      }
      	}
      
      
      }?>
      



      böyle yaptım ama olmadı :(
      11 yıl önce yazılmış