İyinet'e Hoşgeldiniz!

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

Kayıt Ol!

Php Sayfalama Sorunu

hzirh

0
İyinet Üyesi
Katılım
4 Aralık 2012
Mesajlar
2
Reaction score
0
İyi Günler Arkadaşlar Php de Sayfalama Yapmaya Çalışıyorum. Daha php de Yeni Sayılırım. Fazla Bi Bilgim var Sayılmaz. Bu Yüzden PHP de Sayfalama Yapmayı bi Türlü Halledemedim.

Yardım Edebilirmisiniz Arkadaşlar Ne Yaptıysam Hata Aldım.

Kodlar :
PHP:
                <ul class="blog-sayfa">
<?
 $paket=mysql_query("select * from blog order by id desc ");
   if(mysql_num_rows($paket)==0) print "<br/><br/><div class=alertx><center><font face=\"Arial, Helvetica, sans-serif\" size=\"2\">Henüz Hiçbir İçerik Eklenmemiş.</font></center></div>";
  	while($p=mysql_fetch_array($paket)){
		if($satir%1==0){echo "</tr><tr>";};
  ?> 
                                        <li class="blog-post">
															      	

                        <section class="blog-resim">

<img src="resimler/urunler/<?=$p[resim]?>_o.jpg" alt="<?=$p['baslik']?>" title="<?=$p['baslik']?>" height="115" width="200"/>

                        </section>

                        <section class="blog-icerik">

		                  <tr>
             
<a title="<?=$p[baslik]?>" href="blog/<?=$p['id']?>/<?php $yenibaslik = turkceyap($p['baslik']); echo $yenibaslik; ?>"><h2><?=substr($p[baslik],0,65)?>   >></h2></a>
                            <ul class="meta">

<table width="449" border="1">
  <tr>
    <td width="100">Yazar : Admin</td>
    <td width="230"><?=$p['katrul']?></td>
    <td width="97"><?=$p['tarih']?></td>
  </tr>
</table>




								</ul>
                            <p>
                  
				   <?=substr($p[aciklama],0,240)?>...
                            </p>
<a class="yazi-devami" href="blog/<?=$p['id']?>/<?php $yenibaslik = turkceyap($p['baslik']); echo $yenibaslik; ?>">Devamı »</a>

           

                        
                          </tr>   </section>                     
						<hr/ >

		                      
                    </li>

     <?php 
				$satir++;
				}echo ""; ?>  





                    <li>
                        <ul class="sayfalama">
                            <li class="aktif">
                                <a href="#">1</a>
                            </li>

                            <li>
                                <a href="#">2</a>
                            </li>

                            <li>
                                <a href="#">3</a>
                            </li>

                            <li>
                                <a href="#">4</a>
                            </li>

                            <li>
                                <a href="#">5</a>
                            </li>

                            <li class="ok">
                                <a href="#">»</a>
                            </li>

                        </ul>
                    </li>
                </ul>

Şimdiden Teşekkür Ederim Arkadaşlar.
 

CryForLive

0
İyinet Üyesi
Katılım
31 Ocak 2012
Mesajlar
164
Reaction score
0
Konum
İstanbul
ilk önce bir limit belirle mesela benim bir tane sayfamda gösterilecek limit sayısı diyelimki 5

$limit = 5;

sonrada sayfalama yapılacak sayfayı belırt mesela

$sayfa = @$_GET["sayfa"];

bunları bir kontrole sokalım mesela boşsa ve dışarıdan sayfa değişkenine gelen değer numeric değilse

if(empty($sayfa) || !is_numeric($sayfa)) {
$sayfa = 1;
}

sonra bizim veritabanımızda ekranda göstereceğimiz verileri saydırmamız lazım bunun içinde

$saydir = mysql_num_rows(mysql_query("select * from islemyapilacaksayfa"));

toplam sayfayı alalım bunun için matematiksel bir işlem yapalım buda bölme işlemi neyi neye bölücez saydırılan sayfayı limite bölücez ceil ilede yuvarlayıp ondalıklı donen işlemi tam sayıya getircez

$bol = ceil($saydir / $limit);

bir başlangıcımız olacak olan sayfa sayısının bir eksiği ile limiti çarpıcaz

$baslangic = ($sayfa-1)*$limit;

sonra sorgumuzu oluşturalım

$sorgu = mysql_qeury("SELECT * FROM islemyapilacaksayfa ORDER BY id ASC LIMIT $baslangic,$limit");

bir döngüye alıp ekrana çıktıları verelim

while($goster = mysql_fetch_array($sorgu)) {
echo $goster["sayfabasligi"]; // senin ekranda çıkacak asıl yazılar veya içerik burada bulunacak
}

şimdi bir tanede koşul yapalım burada bolunen işlem limitten büyükse

if($bol > $limit) {
$x = 2; // aktif sayfadan önceki/sonraki sayfa gösterim sayısı
$yuvarla = ceil($bol/$limit);
}

tekrar bir koşul yapalım ve buda sayfa sayımız birden biyükse yapacakları belirtelim

if($sayfa > 1) {
$onceki = $sayfa-1;
echo "<a href="?sayfa=$onceki">« Önceki Sayfa </a>";

bir döngü yapalım ve tekrar bir koşul yapalım ve sayfa 1 i yazıdralım
for($i; $i<= $sayfa+$x; $i++) {
if($sayfa == 1) {
echo "<span class="sayfa">[$i]</span>";
}else {echo "<a href="?sayfa=$i">[$i]</a>";}

if($i==$lastP) break;
}
// "..." veya son sayfa
if($sayfa+$x < $yuvarla-1) {
echo "...";
echo "<a href="?sayfa=$yuvarla">[$yuvarla]</a>";
} elseif($sayfa+$x == $yuvarla-1) {
echo "<a href="?sayfa=$yuvarla">[$yuvarla]</a>";
}

if($sayfa < $yuvarla){

$sonraki = $sayfa+1;

echo "<a href="?sayfa=$sonraki"> Sonraki Sayfa » </a>";

}


}
}
 

hzirh

0
İyinet Üyesi
Katılım
4 Aralık 2012
Mesajlar
2
Reaction score
0
CryForlive Teşekkür Ederim. Başka bir Forumda Cevabını buldum. Lazım olacak olur belki diye burada örnek kodları paylaşıyorum

PHP:
<ul class="blog-sayfa"> 
<?php
$sayfa = $_GET['sayfa'];
if((empty($sayfa)) or (!is_numeric($sayfa)))
{
  $sayfa = 1;
}
$toplamsorgu = [MENTION=382]MYSQL[/MENTION]_query("SELECT * FROM blog");
$toplamsorgusay = [MENTION=382]MYSQL[/MENTION]_num_rows($toplamsorgu);
$toplamsayfa = ceil($toplamsorgusay / 5);

if($sayfa > $toplamsayfa)
{
$sayfa = $toplamsayfa;
}

if($sayfa < 1)
{
$sayfa = 1;
}

$baslangic = ($sayfa-1)*5;


 $paket=mysql_query("select * from blog order by id desc LIMIT $baslangic,5"); 
   if($toplamsorgusay==0) print "<br/><br/><div class=alertx><center><font face=\"Arial, Helvetica, sans-serif\" size=\"2\">Henüz Hiçbir İçerik Eklenmemiş.</font></center></div>"; 
      while($p=mysql_fetch_array($paket)){ 
        if($satir%1==0){echo "</tr><tr>";}; 
  ?>  
                                        <li class="blog-post"> 
                                                                       

                        <section class="blog-resim"> 

<img src="resimler/urunler/<?=$p[resim]?>_o.jpg" alt="<?=$p['baslik']?>" title="<?=$p['baslik']?>" height="115" width="200"/> 

                        </section> 

                        <section class="blog-icerik"> 

                          <tr> 
              
<a title="<?=$p[baslik]?>" href="blog/<?=$p['id']?>/<?php $yenibaslik = turkceyap($p['baslik']); echo $yenibaslik; ?>"><h2><?=substr($p[baslik],0,65)?>   >></h2></a> 
                            <ul class="meta"> 

<table width="449" border="1"> 
  <tr> 
    <td width="100">Yazar : Admin</td> 
    <td width="230"><?=$p['katrul']?></td> 
    <td width="97"><?=$p['tarih']?></td> 
  </tr> 
</table> 




                                </ul> 
                            <p> 
                   
                   <?=substr($p[aciklama],0,240)?>... 
                            </p> 
<a class="yazi-devami" href="blog/<?=$p['id']?>/<?php $yenibaslik = turkceyap($p['baslik']); echo $yenibaslik; ?>">Devamı »</a> 

            

                         
                          </tr>   </section>                      
                        <hr/ > 

                               
                    </li> 

     <?php  
                $satir++; 
                }echo ""; ?>   





                    <li> 
                        <ul class="sayfalama"> 
<?php
for($x = 1; $x <= $toplamsayfa; $x++)
{
?>
<li<?php if($x == $sayfa) { echo " class = 'aktif'"; } ?>>
<a href="index.php?sayfa=<?php echo $x; ?>"><?php echo $x; ?></a>
</li>
<?php
}
?>

                        </ul> 
                    </li> 
                </ul>
 

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