View Single Post
Sponsorlu Bağlantılar
Zoque.Forum
Advertisement
Old 20.12.2006   #4 (permalink)
s5prin
 
s5prin's Avatar
 
Üyelik Tarihi: 16.12.2006
Yer: istanbul
Yaş: 26
Mesaj: 470
Re: sayfada sadece son 10 yorum görülmesini istiyorum

şurada konuya değinilmiş ama ben olsam daha sade şekilde şöyle yapardım:

PHP Code:
// sayfa başına kayıt
$perpage 10

// kacinci sayfa istendi? SQL injection vs. kontrol etmek lazım :)
if( intval($_GET['sayfa']) )
  
$page $_GET['sayfa'];
else
  
$page 1;

// o sayfada gösterilecek verileri al
$SQL "SELECT * FROM comments 
  LEFT JOIN users ON comments.user_id = users.user_id 
  WHERE comments.file_id = '" 
intval($_GET['id']) . "' 
  ORDER BY comments.added
  LIMIT "
.$perpage*($page-1).", ".$perpage// BU SATIRA DIKKAT!

$comments_query mysql_query ($SQL);

// vs.
// vs.
// vs. 
Dikkat yazdigim satırı LIMIT kullanımını kurcalarsan anlarsın nasıl çalıştığını. Örn; $page = 1 geldiyse LIMIT $perpage*($page-1).", ".$perpage formülünün çıktısı LIMIT 0, 10 olacaktır (sıfırıncı kayıttan başla 10 tane al)
$page = 3 geldiyse çıktı LIMIT 20, 10 -> 20. kayıttan başla 10 tane al.. gibi

Ayrica en altta sayfa 1 . 2 . 3 vs gostermek için;

PHP Code:
// toplam kayit sayisini bul -> $t_rec
$SQL "SELECT COUNT(*) FROM comments 
  LEFT JOIN users ON comments.user_id = users.user_id 
  WHERE comments.file_id = '" 
intval($_GET['id']) . "'";
list(
$t_rec) = mysql_fetch_rowmysql_query($SQL) );

// bu kontrolü ozellestirebilirsin
for($i=1$i<=ceil($t_rec/$perpage); $i++) {
  echo 
"<a href='?sayfa=$i'>$i</a> | ";

Burada da toplam potansiyel gösterimi olabilecek kayıtı COUNT(*) ile buluyoruz. Atıyorum 54 geldiyse bu 6 sayfa eder, o yüzden kayıt sayısı/sayfa başına değilde ceil($t_rec/$perpage) ile bölüyoruz. (Yukarıya yuvarlayıp.) Sonra da 1'den 6'ya kadar tek tek istediğin formatta yazdırıyorsun.

Umarım yardımcı olabilmişimdir.
__________________
imzaya sponsor
s5prin şu an çevrimdışı   Mesajdan alıntı yaparak yeni bir cevap ekleyin