• 19-11-2012, 11:10:01
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Kendim yapmaya çalıştığım haber sitesi yada başka bir amaçlada kullanabilecek projemle ilgili olarak haberleri kategorilere ayırdım fakat sayfalama olayını yapamadım, baya bi uğraştım ama olmadı, hazır olarak nette yayınlananları deniyorum çalışıyor fakat benimki niye çalışmıyor anlamadım, çok iyi değilim php de, belki küçük bir ayrıntıyı kaçırıyorumdur bilmiyorum.
    <!--kategorilere gore haberler -->
    <div class="hbrler_ust">KATEGORİ HABERLERİ</div>
    <div class="hbrler_orta">
    		
    <?php
    function kisalt($degisken, $max_uzunluk){
    if (strlen($degisken) > $max_uzunluk){
    $degisken = substr($degisken, 0, $max_uzunluk);
    $shn = strrpos($degisken, " ");
    if($shn === false) {
    return substr($degisken, 0, $max_uzunluk)."…";
    }
    return substr($degisken, 0, $shn)."…";
    }else{
    return $degisken;
    }
    }
    $kid=@$_GET['id']; // Kategoriden gelen İd
    $limit=9;
    $oku=mysql_query("select * from haberler where yayinla='1'");
    $sayi =mysql_num_rows($oku);
    $sayfasayisi=$sayi/$limit;
    $sonkayit=($sayfasayisi-1)*$limit;
    if(!$habersayfa==''){$sonkayit=($habersayfa-1)*$limit;}
    else {$sonkayit=0;}
    $oku=mysql_query("select * from haberler where yayinla='1' AND kid='$kid' order by id desc limit $sonkayit,$limit");
    $sayfasayisi=ceil($sayi/$limit);
    while ($vericek=mysql_fetch_array($oku)){
    $id=$vericek['id'];
    $baslik=$vericek['baslik'];
    $icerik=kisalt($vericek['icerik'],50);
    $icerik=strip_tags($icerik);
    $tarih=$vericek['tarih'];
    $resim_yolu=$vericek['resim_yolu'];
    $izlenme=$vericek['izlenme'];
    
    
    echo "	<div class=\"haber\">\n"; 
    echo "	\n"; 
    echo "	<div class=\"haber_resim\">\n"; 
    echo "	<a href='haberoku.php?sayfa&id=$id'><img width=\"180\" height=\"110\" src=\"haber_resimleri/$resim_yolu\" class=\"$baslik\" alt=\"$baslik\" title=\"$baslik\" /></a>\n"; 
    echo "	</div>\n"; 
    echo "	<div class=\"haber_ozet\">\n"; 
    echo "	<h3><a href=\"~p=89.html\"><a href='haberoku.php?sayfa&id=$id'>$baslik</a></a> </h3>\n"; 
    echo "	<p>$icerik\n"; 
    echo "<br><b>Okuma :</b> $izlenme <br> <b>Ekleme Tarihi:</b>$tarih\n";
    echo "<a href='haberoku.php?sayfa&id=$id'>[Devamı]</a></p></div>\n"; 
    echo "	</div>\n"; 
    }
    ?>
    								
    <div class="clear"></div>
    <div class="sayfalama">
    <div class="sayfalama_sol">
    <div class='zayfala'>
    <span class='sayfalar'>
    <?php
    echo "<center>";
    	if($habersayfa==1){echo "";}	else { echo "<a href=kategori.php?sayfa=haberler&habersayfa=1>İlk </a>";}
    	for($i=1; $i <= $sayfasayisi; $i++) { 
    		if($habersayfa==$i){echo " $i ";} else {
    		echo "<a href=kategori.php?sayfa=haberler&habersayfa=$i> $i </a>"; }
    		}   
    		$i=$i-1;
    	if($habersayfa==$sayfasayisi){ echo"";} else {echo "<a href=kategori.php?sayfa=haberler&habersayfa=$i> Son</a>";}
    	echo "</center>";
    
    ?>
    </div>
    </div>
    <div class="sayfala_sag">
    <a href="tumhaberler.php">TÜM HABERLER</a></div>
    </div>
    <!--sayfala bitti-->
    </div>
    <div class="hbrler_alt">
    </div> 
    <!--hbrler bitti-->
  • 19-11-2012, 11:45:39
    #2
    $habersayfa değişkenine bir değer atanmamış görünüyor. $sayfasayisi bu da istediğiniz sonucu veriyorsa çalışması gerek. $sayfasayisi sizin istediğiniz değeri alıyor mu bir kontrol edin.
  • 19-11-2012, 13:53:21
    #3
    Kategorilerin olduğu sayfadaki kodlar şu şekilde
    <?php
    $cek=mysql_query("select * from haber_kategori order by id desc");
    while($veri=mysql_fetch_array($cek)){
    	$id=$veri['id'];
    	$baslik=$veri['kategori'];
    ?>
    				
    <ul id="menu-hizli-menu" class="menu"><li id="menu-item-143" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-143"><a href="kategori.php?habersayfa&id=<? echo $id ?>"><? echo $baslik ?></a></li>
    <?
    }
    ?>


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 13:53:21 -->-> Daha önceki mesaj 12:27:16 --

    Şu şekilde çalışıyor fakat böylede kategorideki haberleri getirtemiyorum, manuel olarak yazınca geliyor, yani kategori id sini yazınca (where kid='9' )
    <?php
    if (empty($_GET["syf"])){
    
    $syf=1;
    
    }else{
    
    $syf=$_GET["syf"];
    
    }
    
    $sorgu=mysql_query("select * from haberler");
    
    $limit=9;
    
    $kayitSayisi=mysql_num_rows($sorgu);
    
    $sayfaSayisi=ceil($kayitSayisi/$limit);
    
    $baslangic=($syf*$limit)-$limit;
    $sorgu=mysql_query("select * from haberler where kid='9' order by id desc limit $baslangic,$limit");
    while($kayit=mysql_fetch_array($sorgu)){
    
    $baslik=$kayit['baslik'];
    $id=$kayit[id];
    echo "<a href='haberoku.php?sayfa&id=$id'>";
    echo "$baslik <br>";
    echo "</a>";
    
    }
    ?>

    Sayfalama kısmıda çalışan

    <div class='wp-pagenavi'>
    <span class='pages'>
    <?php
    echo '<center>';
    if ($sayfaSayisi>1){//Tek sayfa ise sayfalama yapmaya gerek yok
    
    
    
    for ($i=1;$i<=$sayfaSayisi;$i++){
    
    	echo '<a href="zayfalama.php?sayfa=listele&syf='.$i.'"';
    
    	if ($syf==$i){ echo 'class="syf_aktif"';}//Bulunduğumuz sayfayının linkine syf_aktif sınıfını geçiriyoruz. 
    
    	echo '>'.$i.'</a>';
    
    }
    
    echo '</center>';
    
    }
    
    ?>
    </div>
  • 20-11-2012, 15:11:52
    #4
    Ne kadar kurcalasamda sorunu çözemedim, takıldım kaldım burada, ipucu verecek arkadaşları bekliyorum.
  • 20-11-2012, 15:18:33
    #5
    Hocam öncelikle kodlarınızı düzenli yazın. İnanın o kadar karmaşık yazmışsınız ki, okumaya üşendim. Düzenli yazdıktan sonra okuması çok kolay olacağı için hatalarınızı rahatlıkla görebilirsiniz.
  • 21-11-2012, 16:22:37
    #6
    Sayfalama olayını düzelttim ama fazladan iki sayfa sayısı daha geliyor yani
    Alıntı
    1 [ 2 ] [ 3 ] [ 4 ] Son
    iki sayfa olacağına 3 ve 4 fazla geliyor, şuanda sıkıntı bu var.
  • 21-11-2012, 17:54:36
    #7
    $sorgu=mysql_query("select * from haberler"); 
    
    $limit=9; 
    
    $kayitSayisi=mysql_num_rows($sorgu); 
    
    $sayfaSayisi=ceil($kayitSayisi/$limit); 
    
    $baslangic=($syf*$limit)-$limit; 
    $sorgu=mysql_query("select * from haberler where kid='9' order by id desc limit $baslangic,$limit");
    Buradaki kodlara dikkat ederseniz; tüm haberlerin sayısını limite bölüp sadece 9'uncu kategorideki haberleri listeliyorsunuz. Sayfaların fazla gözükmesinin sebebi bu.
  • 03-12-2012, 15:48:55
    #8
    Problemi buldum sonunda, sorun çözüldü, toplam sayı almak için sorguda kategori id yazmadığım için tüm haberleri çektiriyormuşum, şuanda düzeldi
  • 03-12-2012, 21:40:24
    #9
    Hocam ben bunu 2 hafta önce yazmıştım zaten