Zoque.Forum
Dirsek Teması:
Geri Dön Zoque.Forum » Webmaster Kaynaklari » ://www » sayfada sadece son 10 yorum görülmesini istiyorum


://www Web tasarımı ve internet ile ilgili olarak karşılaştığınız problemleri ve merak ettiklerinizi burada tartışabilirsiniz.

Yanıt
 
LinkBack Seçenekler
Old 20.12.2006   #1 (permalink)
hotr1de
 
Üyelik Tarihi: 01.05.2006
Yer: istanbul
Yaş: 21
Mesaj: 27
sayfada sadece son 10 yorum görülmesini istiyorum

elimde şöyle küçük bir script var yorum yazıyoruz fakat 100 yorum olsada 1000 yorum olsada hepsini ilk sayfada gösteriyor ben sadece ilk yada son 10 tanesini göstermesini istiyorum , diğerleri 2. 3. sayfada olucak elimdeki kod bu

PHP Code:
// ##### GET COMMENTS #####
$comments_query mysql_query ("SELECT * FROM comments LEFT JOIN users ON comments.user_id = users.user_id WHERE comments.file_id = '" intval($_GET['id']) . "' ORDER BY comments.added");
while (
$comment mysql_fetch_array ($comments_query))
{
$comment['comment'] = stripslashes ($comment['comment']);
$comment['title'] = stripslashes ($comment['title']);
$comment['added'] = date('F d, Y'$comment['added']);
$comments .= $tpl->pull_template ('comment');

bir arkadaş şöyle bir kod verdi ama çalışmadı ne yazıkki

PHP Code:
if (! $k ) { $k=0; }
$comments_query mysql_query ("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 $k , 10");
$hepsi_tab="SELECT * FROM comments LEFT JOIN users ON comments.user_id = users.user_id WHERE comments.file_id = '" intval($_GET['id']) . "' ORDER BY comments.added ";
$hepsi=mysql_query($hepsi_tab);
$toplam=@mysql_num_rows($hepsi);
while (
$comment mysql_fetch_array ($comments_query))
{
$comment['comment'] = stripslashes ($comment['comment']);
$comment['title'] = stripslashes ($comment['title']);
$comment['added'] = date('F d, Y'$comment['added']);
$comments .= $tpl->pull_template ('comment');
$i 0;
while (
$i $toplam) {$a $a 10
 
echo 
"<a href='?k=$i'>[$a]</a>";
$i=$i 10;}

bir incelermisiniz lütfen bu arada SEO url kullanıyorum script'de ve arkadaşın verdiği şekilde ekliyince siteadi.com/files/xxx.HTML linki yorumların 2. , 3. sayfasına tıklıyınca siteadi.com/files/xxx.HTML?k=10 siteadi.com/files/xxx.HTML?k=20 şeklinde oluyor fakat öyle görünsede yorumlar değişmiyor hep aynı ( ilk ) yorumlar görünüyor ve çalışmamasının sebebi SEO url olabilirmi ?

bu arada kullandığım htaccess
PHP Code:
RewriteRule "^/?(page)/([0-9]+)-files.HTML$" index.PHP?page=$[Last]
RewriteRule "^/?(category|file|type)/([0-9]+)[^/]+.HTML$" $1.PHP?id=$[Last]
RewriteRule "^/?(category|file|type)/([0-9]+)/([0-9]+)[^/]+.HTML$" $1.PHP?id=$2&page=$[Last 

Mesaj hotr1de tarafından 20.12.2006 (23:47) yeniden düzenlendi..
hotr1de şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 20.12.2006   #2 (permalink)
s5prin
 
s5prin's Avatar
 
Üyelik Tarihi: 16.12.2006
Yer: istanbul
Yaş: 26
Mesaj: 446
Re: sayfada sadece son 10 yorum görülmesini istiyorum

PHP Code:
$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 10"
;

$comments_query mysql_query ($SQL); 
query'de LIMIT parametresine bak
__________________
imzaya sponsor
s5prin şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 20.12.2006   #3 (permalink)
hotr1de
 
Üyelik Tarihi: 01.05.2006
Yer: istanbul
Yaş: 21
Mesaj: 27
Re: sayfada sadece son 10 yorum görülmesini istiyorum

Alıntı:
s3prin tarafından gönderilen mesaj: Mesajı Görüntüle
PHP Code:
$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 10"
;

$comments_query mysql_query ($SQL); 
query'de LIMIT parametresine bak

diğerleri 2. 3. sayfada olucak bunu nasıl yapcaz önemli olanda bu zaten


youtube'deki gibi 10 yorum ilk sayfada diğerleri 2. 3. 4. diye ayrılcak
hotr1de şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 20.12.2006   #4 (permalink)
s5prin
 
s5prin's Avatar
 
Üyelik Tarihi: 16.12.2006
Yer: istanbul
Yaş: 26
Mesaj: 446
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ışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 21.12.2006   #5 (permalink)
hotr1de
 
Üyelik Tarihi: 01.05.2006
Yer: istanbul
Yaş: 21
Mesaj: 27
Re: sayfada sadece son 10 yorum görülmesini istiyorum

burası hata veriyor
PHP Code:
LIMIT ".$perpage*($page-1)."".$perpage; 
.$perpage*($page-1). bu yazım sitede bir örneğe baktım şöyle kullanmış
PHP Code:
ORDER BY added LIMIT ".$start."".$software['limit']); 
burayı ona göre düzenliyebilirmisin pek anlamıyorumda ayrıca teşekkürler
hotr1de şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 21.12.2006   #6 (permalink)
s5prin
 
s5prin's Avatar
 
Üyelik Tarihi: 16.12.2006
Yer: istanbul
Yaş: 26
Mesaj: 446
Re: sayfada sadece son 10 yorum görülmesini istiyorum

Ohooo. Projeyi zip'leyip gönder, yapılmışını verelim.

Şaka bir yana kod syntax'ı normal gözüküyor. Ne hatası verdiğini yapıştırırsan yardımcı olurum.

Not: bu arada senin veridğin kodla benimkisi aynı mantık.
__________________
imzaya sponsor
s5prin şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 21.12.2006   #7 (permalink)
hotr1de
 
Üyelik Tarihi: 01.05.2006
Yer: istanbul
Yaş: 21
Mesaj: 27
Re: sayfada sadece son 10 yorum görülmesini istiyorum

kodu böyle çalıştırdım fakat bu seferde ?sayfa=2 , ?sayfa=3 'e geçincede aynı ilk 10 yorum görünüyor.

PHP Code:
// ##### GET COMMENTS ##### 
$perpage 10
if( 
intval($_GET['sayfa']) )
  
$page $_GET['sayfa'];
else
  
$page 1
  
$comments_query mysql_query ("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");
while (
$comment mysql_fetch_array ($comments_query))
{
    
$comment['comment'] = stripslashes ($comment['comment']);
    
$comment['title'] = stripslashes ($comment['title']);
    
$comment['added'] = date('F d, Y'$comment['added']);
    
$comments .= $tpl->pull_template ('comment');
}
// 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> | ";

hotr1de şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 21.12.2006   #8 (permalink)
s5prin
 
s5prin's Avatar
 
Üyelik Tarihi: 16.12.2006
Yer: istanbul
Yaş: 26
Mesaj: 446
Re: sayfada sadece son 10 yorum görülmesini istiyorum

Bende gayet güzel sayfa sayfa gösteriyor.

Şu satırı;
PHP Code:
$comments_query mysql_query ("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"); 
şöyle yazıp HTML çıktısını verir misin; Her sayfa için ayrı ayrı çıktısını ver. Örn; ?sayfa=1 ?sayfa=2 .. gibi.
PHP Code:
$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";
echo 
$SQL; exit; // <- SQL sorgu çıktısını istiyorum
$comments_query mysql_query ($SQL); 
Ayrıca neden 1000 karakterlik satırlarla kodlamaya ısrar ediyorsun ki. Temiz kod yaz ilerde kitap okur gibi ne yaptığını anlarsın.

Dipnot: mysql_fetch_array($comments_query) döngüsünde de de mysql_fetch_assoc($comments_query) kullan, kullanacağın kadar değişken alır sunucuyu daha az yorarsın.
__________________
imzaya sponsor

Mesaj s5prin tarafından 21.12.2006 (13:29) yeniden düzenlendi.. Açıklama: ek
s5prin şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 21.12.2006   #9 (permalink)
hotr1de
 
Üyelik Tarihi: 01.05.2006
Yer: istanbul
Yaş: 21
Mesaj: 27
Re: sayfada sadece son 10 yorum görülmesini istiyorum

senin yazdığın gibi şu şekilde değiştirdim (aşağıda ) fakat her sayfada aynı şey yazıyor sanırım sorunda bu , her sayfada
Alıntı:
SELECT * FROM comments LEFT JOIN users ON comments.user_id = users.user_id WHERE comments.file_id = '50' ORDER BY comments.added LIMIT 0, 10
PHP Code:
// ##### GET COMMENTS #####
$perpage 10
if( 
intval($_GET['sayfa']) )
  
$page $_GET['sayfa'];
else
  
$page 1
  
$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";
echo 
$SQL; exit; // <- SQL sorgu çıktısını istiyorum
$comments_query mysql_query ($SQL);

while (
$comment mysql_fetch_array ($comments_query))
{
    
$comment['comment'] = stripslashes ($comment['comment']);
    
$comment['title'] = stripslashes ($comment['title']);
    
$comment['added'] = date('F d, Y'$comment['added']);
    
$comments .= $tpl->pull_template ('comment');
}
// 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> | ";

arkadaşın verdiği kod demiştim başta ondada aynı şekilde oldu sayfalar çıktı ama hepsi aynı yorum bir çıkamadım işin içinden :
hotr1de şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%