impossible03 adlı üyeden alıntı: mesajı görüntüle
sendekazan, dostum yorumun için teşekkürler fakat yukardaki koda entegre edemedim.
Başkalarının kodu üzerinde oynamayı kimse sevmez bu yüzden pek yardımcı olamıyorlar.Senin kodların üstelik hazır bir sistemden alınmış.
Sana kısaca mantıgı anlatayım:
Hangi sayfada oldugunu bulman gerekiyor önceliklen bunun için GET yöntemini kullanacaksın ve bir sayfada kaç tane veri listelenecek onuda yazmalısın.
///////// Her sayfada 10 tane veri listelenecek ////////
$limit=10;
/////// Kontrolden Geçiriyoruz /////////
if(!is_numeric($_GET[sayfa])) {
echo 'hatalı giriş';
}
////// Sayfa Numarsını alıyoruz ///////
if($_GET[sayfa]) {
$sayfam=1;
} else {
$sayfam=$_GET[sayfa];
}
Sayfamızın numarsını aldık şimdi veritabanından seçtigimiz verilerin kaç tane oldugunu bulalım.
$result = $db->query("SELECT COUNT(id) AS id_sayisi FROM ". PREFIX ."_post WHERE approve = '1' AND date < '$thisdate' ORDER BY date DESC");
////// Altaki kısmı salladım çünkü class yapını bilmiyorum mysql_fetch_array kullnacayız yani /////////
$kac_tane=$db->get_row($result);
Şimdi sayfa numarası ile veriler arasında ufak bir matematiksel foksiyon yazacagız:
////// Kaç tane Sayfa Oldugunu Bulmak için toplam veri sayısını ,her sayfada ne kadar veri listelenecekse o sayıya bölüyoruz //////////////
///// Burdaki ceil foksiyonu tam sayı almamız sağlıyor örnek: [url=http://www.php.net/ceil]PHP: ceil - Manual[/url] /////
$sayfa_sayisi = ceil($kac_tane['id_sayisi'] / $limit );
////// Bunun ne işe yaragını ileride anlarsın ////////
$alt_limit = ( $sayfam - 1 ) * $limit;
Şu anda Hangi sayfada oldugumuzu ve hangi veriler arasını listeleyecegimizi anladık.Şimdi verilerin listelemesine geçelim
/////// Burda tablomuzu seçdik ve limiti belirledik. Limit konusunda bilmeniz gereken LIMIT 0,8 yaptıgımızda 1,2,3,4,5,6,7,8 id numaraları listelenecekdik(id numarasıda degil aslında), LIMIT 7,8 yaptıgımızda 7,8,9,10,11,12,13,14,15,16 listelenecekdir.Şimdi neden ( $sayfam - 1 ) işlemini yaptımızı anladık. //////
$result2 = $db->query("SELECT * FROM ". PREFIX ."_post WHERE approve = '1' AND date < '$thisdate' ORDER BY date DESC LIMIT $alt_limit,$limit");
//// Döngüye sokduk //////
 while ($row2 = $db->get_row($result2)){
$map .= "<li style='padding:2px;font-size:11px;' valign='absmiddle'> <font color=\"red\"> ". substr($row2['date'],0,10) ." </font>
<a style='font-weight: bold;' href=".$config['http_home_url'].str_replace("-","/",substr($row2['date'],0,10))."/".$row2['alt_name'].".html>".stripslashes($row2[title])."</a>
\n";
}
Listeleme işlemimiz bitti .Şimdi sayfa numaralarını koyalım alt kısıma:
$i=1;
while ($i < $sayfa_sayisi) {
echo "<a href='map_sayfası.php?sayfa=$i'>$i</a>"
}
Şimde herşeyi yapdık İnşallah anlamışındır birazda olsa işi.
Not: Aşağıda yükleyecegin dosyayı koyuyorum.
RapidShare: 1-Click Webhosting