PHP | Etiketlere Ait Makaleleri Sayfalama

Merhaba arkadaşlar.
Etikete ait makaleler çoksa bunun sayfalamasını nasıl yapacağız. Linke sef linkten sonra id değeri veriyoruz burası tamam. Ancak aynı etiketten birden fazla etiket olunca tek bir etiket şeklinde gruplanması için GROUP BY kulanıyoruz. Bu durumda etikete ait 5 tane makale varsa id değeri verdiğimizden dolayı 1 tane makale gözüküyor. Bunun çözümü nedir?

etiketler

$etiketler = mysql_query("SELECT * FROM etiketler GROUP BY etiketler.etiket_icerik LIMIT 0,10");
$etiketBul = mysql_query("SELECT etiket_id FROM etiketler GROUP BY etiketler.etiket_icerik");
$etiketSay = mysql_num_rows($etiketBul);

if( $etiketSay > 0 ){

	while($etiket = mysql_fetch_array($etiketler)){
		echo '<button type="button" class="btn btn-link"><a class="" href="index.php?do=etiket&link='.$etiket["etiket_sef_icerik"].'&id='.$etiket["etiket_makale_id"].'"><i class="fa fa-tag Etiket-Icon"></i>'.$etiket["etiket_icerik"].'</a></button>';
	}
	
	if( $etiketSay > 10 ){
		echo '<span style="display: block; text-align: center"><button type="button" class="btn btn-link"><a class="" href="index.php?do=etiket_bulutu">Tüm Etiketler</a></button></span>';
	}
}else{
	Bilgi("Bilgilendirme","Henüz etiket kaydedilmemiş","bilgi");
}


etiket

$etiket_makale_id = $_GET["id"];
$etiket_sef = strip_tags($_GET["link"]);
$kayitSayisi = @mysql_num_rows(mysql_query("SELECT * FROM etiketler WHERE etiket_makale_id = '$etiket_makale_id' AND etiket_sef_icerik = '$etiket_sef'"));


if( $kayitSayisi > 0 ){

	$sayfa = intval (@$_GET['sayfa']);
	if(!$sayfa) { $sayfa = 1; }
	
	$limit = SITE_LIMIT;
	$sayfaSayisi = ceil($kayitSayisi/$limit);
	$nereden = ($sayfa * $limit) - $limit;
	
	if($sayfa > $sayfaSayisi){		
		Bilgi("Hata!","Böyle bir sayfa mevcut değil! yönlendiriliyorsunuz...","hata");
		header("Refresh:2; url=index.php");
	}else{

		$etiketBul = @mysql_query("SELECT * FROM etiketler INNER JOIN makaleler ON makaleler.makale_id=etiketler.etiket_makale_id WHERE makale_anasayfa=1 AND makale_onay=1 AND makale_id='$etiket_makale_id' AND etiket_sef_icerik='$etiket_sef' ORDER BY etiket_sef_icerik='$etiket_sef' ASC LIMIT $nereden,$limit");
		$etiketSay = mysql_num_rows($etiketBul);
		if($etiketSay > 0){
			
			while($etiket = mysql_fetch_array($etiketBul)){
				
				$makale_id = $etiket["etiket_makale_id"];
				$makaleBul = @mysql_query("SELECT * FROM makaleler INNER JOIN kategoriler ON kategoriler.kategori_id=makaleler.makale_kategori_id WHERE makale_id = '$makale_id'");
				$makale = mysql_fetch_array($makaleBul);
				
				// Makale Yazarını Bulalım
				$makale_yazar = $makale["makale_yazar"];
				$uyeBul = mysql_fetch_array(mysql_query("SELECT uye_id, uye_kullanici_adi FROM uyeler WHERE uye_id = '$makale_yazar'"));
				$uye = $uyeBul["uye_kullanici_adi"];
				
				// Makaleye Ait Toplam Yorum Sayısını Bulalım
				$makale_id = $makale["makale_id"];
				$yorumSay = mysql_query("SELECT yorum_id, yorum_makale_id FROM yorumlar WHERE yorum_makale_id = '$makale_id' AND yorum_onay = 1");
				$toplamYorum = mysql_num_rows($yorumSay);
				
				// Makaleler Sayfamız
				require(TEMA_URL."/includes/makaleler.php");
	
			}
			
				// Makale Sayısı Limitten Büyükse Sayfalamayı Yapalım
				if($kayitSayisi > $limit){ ?>
					
					<nav aria-label="">
						<ul class="pagination Sayfalama">
							<?php
							$forlimit = 3;
							if($sayfa > 1){
								$onceki = $sayfa -1;
								echo '<li class="page-item"><a class="page-link" href="index.php?do=etiket&link='.$etiket_sef.'&id='.$etiket_makale_id.'">İlk</a></li>';
								echo '<li class="page-item"><a class="page-link" href="index.php?do=etiket&link='.$etiket_sef.'&id='.$etiket_makale_id.'&sayfa='.$onceki.'">Önceki</a></li>';
							}
							?>
								
							<?php
							for($i = $sayfa - $forlimit; $i < $sayfa + $forlimit +1; $i++ ){
								if($i > 0 && $i <= $sayfaSayisi){
									
									if($i == $sayfa){
										echo '<li class="page-item"><a style="background-color: #ea5f51; color: #fff" class="page-link" href="index.php?do=etiket&link='.$etiket_sef.'&id='.$etiket_makale_id.'&sayfa='.$i.'">'.$i.'</a></li>';
									}else{
										echo '<li class="page-item"><a class="page-link" href="index.php?do=etiket&link='.$etiket_sef.'&id='.$etiket_makale_id.'&sayfa='.$i.'">'.$i.'</a></li>';
									}
								}
							}
							?>

							<?php
							if($sayfa != $sayfaSayisi){
								$sonraki = $sayfa +1;
								echo '<li class="page-item"><a class="page-link" href="index.php?do=etiket&link='.$etiket_sef.'&id='.$etiket_makale_id.'&sayfa='.$sonraki.'">Sonraki</a></li>';
								echo '<li class="page-item"><a class="page-link" href="index.php?do=etiket&link='.$etiket_sef.'&id='.$etiket_makale_id.'&sayfa='.$sayfaSayisi.'">Son</a></li>';
							}								
							?>
						</ul>
					</nav>
					
				<?php }
			
		}else{
			Bilgi("Hata","Böyle bir etiket sitede mevcut değil!","hata");
			header("Refresh: 2; url=index.php");
		}
	}
}else{
	Bilgi("Bilgilendirme","Henüz bu kategoriye bir makale eklenmemiş!","bilgi");
}
Cevap Yaz

Cevap yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git