İyinet'e Hoşgeldiniz!

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

Kayıt Ol!

Veritabanı link ve sayfalama

Loverboy

0
İyinet Üyesi
Katılım
6 Ağustos 2013
Mesajlar
8
Reaction score
0
Arkadaşlar sabhtan beri arıyorum bulamadığım bişey var yada yanliş aratıyorum amacım şu

Hani veritabanindan bilgiyi çekiyoruz ya bunu nasıl link veripte sayfalandıracaz.

Örnek wordpress gibi konuyu açtıktan sonra ana sayfaya geliyor ordan basliğa basip konu ait bir oto sayfa oluşturup tüm metni gösteriyor.

Şimdiden tesekkürler cevaplayan arkadaşlara
 

CTRL14

0
İyinet Üyesi
Katılım
5 Ağustos 2013
Mesajlar
238
Reaction score
0
get işlemi kullanacaksın mesela butona <a href="index.php?id=<?php echo $_GET["id"];?>" diyeceksin bpeki bu id i nerden bulucam veri eklerken veri sütunu oluştur ve değerini rast gele vs yap sonra $id=$cek["id"] gibi kullan $id i $_get e eşitle sonraki sayfada ise tıkladıktan sonra
$_get işlemiyle veri tabanında id degişkenine ait olanı çek başlık vs yerleştirdikten sonra hallolacaktır :)
 

hadesistan

0
İyinet Üyesi
Katılım
10 Ağustos 2013
Mesajlar
14
Reaction score
0
Şimdi sayfalama demek listelediğin kayıtları sayfalara ayırmak demek
Eğer sorun buysa bunun için Veritabanın LIMIT fonksiyonunu kullanacaksın. Aşağıda PHP SAYFALAMA olarak detaylıca anlattım.
Fakat sormuş olduğun soru bir sayfaya konu başlıklarını yada başka bi özelliğini getirip üzerine tıklandığında detaylarını görmek ise onu belirt ona göre onu anlatalım.

PHP SAYFALAMA konusunda bilgi almak isteyenler aşağıdaki metinden yararlanabilir.

Bu işi pratik halletmen adına sana eskiden kullandığım bir class yükleyip anlatıyorum hızlıca.

Öncelikle aşağıda bulunan kodları sayfalaClass.php olarak kaydederek scriptin olduğunun dizine koymalısın.

PHP:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
<META HTTP-EQUIV="Content-Type" content="text/html; charset=windows-1254">
<?
class sayfalamaClass
{
	public static $kayitSayisi;
	public static $sayfaSayisi;
	public static $sql;
	public static $nerden;
	public static $query;
	public static $page;
	public static function sayfala($tablo,$kacar)
	{
		self::$sql 		   = "select * from ".$tablo."";
		self::$kayitSayisi = mysql_fetch_array(mysql_query("select count(id) from ".$tablo.""));
		self::$sayfaSayisi = ceil(self::$kayitSayisi[0]/$kacar);
		self::$page		   = mysql_escape_string($_REQUEST['p']);
		if(!isset(self::$page) || !is_numeric(self::$page) || self::$page>self::$sayfaSayisi)
		{
			 self::$page = 1;
		}
		self::$nerden = (self::$page*$kacar)-$kacar;
		self::$query = mysql_query(self::$sql." order by id desc limit ".self::$nerden.",".$kacar."");		
	}
	public static function sayfalar($link)
	{
		if(self::$sayfaSayisi>1)
		{
			echo '<table border="0" cellpadding="0" cellspacing="0" class="sayfala"><tr>';
			if(self::$page!=1)
			{
				echo '<td class="aktif" align="center" valign="middle"><a href="'.$link.'&p=1"> İlk Sayfa </a></td>';
				$onceki = self::$page-1;
				echo '<td class="aktif" align="center" valign="middle"><a href="'.$link.'&p='.$onceki.'"> Geri </a></td>';
			}
			else
			{
				echo '<td class="pasif" align="center" valign="middle">İlk Sayfa </td>';
				$onceki = self::$page-1;
				echo '<td class="pasif" align="center" valign="middle">Geri</td>';
			}
			
			echo '<td class="sayfaNumarasi" align="center" valign="middle"> Sayfa <b>'.self::$page.' / '.self::$sayfaSayisi.'</b></td>';
			if(self::$page!=self::$sayfaSayisi)
			{
				$sonraki = self::$page+1;
				echo '<td class="aktif" align="center" valign="middle"><a href="'.$link.'&p='.$sonraki.'"> İleri </a></td>';
				echo '<td class="aktif" align="center" valign="middle"><a href="'.$link.'&p='.self::$sayfaSayisi.'"> Son Sayfa</a></td>';
			}
			else
			{
				$sonraki = self::$page+1;
				echo '<td class="pasif" align="center" valign="middle">İleri</td>';
				echo '<td class="pasif" align="center" valign="middle">Son Sayfa</td>';
			}
			echo '<td><form action='.$link.' method="post"><input type="text" name="p"></td><td><input type="submit" value="Git" class="buton"></td></tr></table>';
		}
	}
}

?>

Daha sonra sayfalama yapacağın dosyayı açarak aşağıdaki kodu ekleyerek classımızı include ediyoruz. Sayfalama yapacağım sayfa adı varsayalım index.php olsun.

PHP:
<?
include("sayfalaClass.php");
?>


Bundan sonraki aşama çok basit while yapısında veritabanı satırı yerine bu classdan fonksiyon çağıracağız. Tablomuzun adının urunler oldugunu varsayalım

PHP:
 <? 

sayfalamaClass::sayfala("urunler",5); //urunlerin yanında gormus oldugun 5 rakami kac kayitda bir sayfalama yapacagini ayarliyor. Rakami revize edebilirsin.

while ($row = mysql_fetch_array(sayfalamaClass::$query)){

?>

Ve While döngüsü bitiminden sonra sayfalama linklerinin ([1,2,3,4,5,etc..] gibi) gelmesini istediğin alana aşağıdak kodu yapıştırıyorsun.

Sayfanın isminin yukarıda index.php oldugunu varsaydığımız için o parantez içindeki kısım index.php olarak geçiyor. Revizyon yapabilirsin.

PHP:
<?php 
sayfalamaClass::sayfalar("index.php");
?>

Bunu bu şekilde veritabanında koşul belirtmeden mantığı anlamak adına çalıştır. Ondan sonra zaten istersen tek bi yerde kullanacaksan class içindeki

PHP:
self::$sql  = "select * from ".$tablo."";
self::$kayitSayisi = mysql_fetch_array(mysql_query("select count(id) from ".$tablo.""));
satırlarının son iki tırnağın arasına WHERE ile koşul belirtebilirsin. Yada istersen fonksiyonda koşul için düzenleme yaparız hemen.

Kolay gelsin ;)
 

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.

Üst