İyinet'e Hoşgeldiniz!

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

Kayıt Ol!

Önceki - Sonraki Sorunu - Yardım!

garrip

0
İyinet Üyesi
Katılım
28 Aralık 2010
Mesajlar
174
Reaction score
0
Merhaba arkadaşlar yine yardımlarınızı bekliyorum :utan:

yapmak istediğim şey en çok görüntülenen fotoğrafları tek olara göstermek ver ileri geri butonlarıyla diğer fotoğraflara geçiş yapmak yaptığım kod şu:
PHP:
$izlenme = $_GET['fotoid']
PHP:
$sonraki= mysql_fetch_array(mysql_query("SELECT * FROM fotolar WHERE id < '$fotoid' AND aktif='1' ORDER BY id DESC LIMIT 1"));

$onceki= mysql_fetch_array(mysql_query("SELECT * FROM fotolar WHERE id > '$fotoid' AND aktif='1' ORDER BY id ASC LIMIT 1"));

bu şekilde sonraki butonu çalışıyor ancak önceki butonu yine aynı id yi alıyor

önceki sorgusunu ASC yeri DESC yaptığımda bir önceki fotoğrafa değil en baştaki fotoğrafa gidiyor.

takıldığım yer sadece görüntülenmeye göre önceki -sonraki

son eklenen fotoğrafları şu şekilde yaptım:


PHP:
$sonraki= mysql_fetch_array(mysql_query("SELECT * FROM fotolar WHERE id < '$fotoid' AND aktif='1' ORDER BY id DESC LIMIT 1"));

$onceki= mysql_fetch_array(mysql_query("SELECT * FROM fotolar WHERE id > '$fotoid' AND aktif='1' ORDER BY id ASC LIMIT 1"));

sorunsuz çalışıyor. Nerde hata var çözemedim. Yardım edebilirseniz sevinirim..
 

Lansewebtr

0
İyinet Üyesi
Katılım
30 Aralık 2010
Mesajlar
256
Reaction score
3
limit i 1, 1 yapıp 2. yi almayı denedin mi ? aslında bu şekilde olması lazım ama .. :S ilginç :D
 

garrip

0
İyinet Üyesi
Katılım
28 Aralık 2010
Mesajlar
174
Reaction score
0
limit i 1, 1 yapıp 2. yi almayı denedin mi ? aslında bu şekilde olması lazım ama .. :S ilginç :D

evet bu şekilde çalışması gerek aynı şekilde son yorum yapılanlar için yaptığımda sorunsuz çalışıyor sorun nerde anlayamadım :sinir:

db den kaynaklanan bir sorunmudur diye baktım izlenme alanını bigint dan int çevirdim nafile :ehule

takıldım kaldım yardım edin .. !! :eek:ha:
 

eL_Master

0
İyinet Üyesi
Katılım
2 Aralık 2010
Mesajlar
100
Reaction score
0
$sonraki= mysql_fetch_array(mysql_query("SELECT * FROM fotolar WHERE id = '$fotoid+1' AND aktif='1'"));

$onceki= mysql_fetch_array(mysql_query("SELECT * FROM fotolar WHERE id = '$fotoid-1' AND aktif='1'"));

Demek istediğim şu;

Diyelimki 24 ID numaralı resimi açtın. Sol tarafa tıklayınca (onceki) o ID numarasından 1 düşük olan , yani 23 numaralı acılacak. Sonraki deyince 25.

bu kodun çalışması lazım sadece bir id cektiğin için limit koymana da gerek yok.
olmazsa gene burdan yazarsın
 

garrip

0
İyinet Üyesi
Katılım
28 Aralık 2010
Mesajlar
174
Reaction score
0
$sonraki= mysql_fetch_array(mysql_query("SELECT * FROM fotolar WHERE id = '$fotoid+1' AND aktif='1'"));

$onceki= mysql_fetch_array(mysql_query("SELECT * FROM fotolar WHERE id = '$fotoid-1' AND aktif='1'"));

Demek istediğim şu;

Diyelimki 24 ID numaralı resimi açtın. Sol tarafa tıklayınca (onceki) o ID numarasından 1 düşük olan , yani 23 numaralı acılacak. Sonraki deyince 25.

bu kod sadece o fotoğrafın id sinden kucuk olanı alıyor benim id ile bir işim yok ben id ye göre değil izlenmeye göre ileri geri yapıyorum

yani 24 ID numaralı fotoğrafın izlenme oranı 250 olsun
ileri dediğinde azalana doğru gidiyor yanı 250 den kucuk olan ilk fotoyu seçiyorum orda sorun yok

ancak 250 den buyuk olan ilk fotoyu seçemiyorum bir turlu, verdiğim kodla hep gösterilen fotonun id si çıkıyor yerinde sayıyor yani

ayrıca sizin vermiş olduğunuz kodda o id numarasından 1 küçük olan fotoğraf yoksa sıkıntı olabilir.

valla arkadaşlar nasıl bir sorundur anlayamadım aynı kodu son yorum yapılanlara görede yaptım orda sorunsuz çalıştı. ölene kadar çözemicekmişim gibi :mad:
 

garrip

0
İyinet Üyesi
Katılım
28 Aralık 2010
Mesajlar
174
Reaction score
0
Fotoğrafların izlenme sayısını nerede tutuyorsun. Fotoların oldugu tablonun içeriğini buraya yazarsan yardımcı olabilirim.

Ekleme: Eğer resimlerin oldugu yerde her resim için bir hit değeri tutuyorsan aşağıdakini yapman kafi olacaktır.


$sonraki= mysql_fetch_array(mysql_query("SELECT * FROM fotolar WHERE id < '$fotoid' AND aktif='1' ORDER BY hit DESC LIMIT 1"));

$onceki= mysql_fetch_array(mysql_query("SELECT * FROM fotolar WHERE id > '$fotoid' AND aktif='1' ORDER BY hit ASC LIMIT 1"));

Yani ID numarasına göre değil HIT tablosundaki değere göre artan yada azalanı listeleteceksin. (Not : Bu kodlar calısıyormu bilmiyorum. Sadece ID olan kısımı değiştirdim. Eger calısmazsa yeniden yazabiliriz.)

Olmadı Ertürk ayrıca olsa bile bu o id den büyük olan olması gerek izlenme oranı yuksek olup id numarası kucukse nolucak :)

Ta Ta Ta Tammmm Vallahi nasıl oldu bende anlamadım ama oldu :deli

PHP:
$geri = @mysql_fetch_array(mysql_query("SELECT * FROM fotolar WHERE izlenme > '$izlenme' && aktif='1' ORDER BY izlenme ASC LIMIT 1")

bu kodu kullanıyordum ve geri tusu goruntulenen fotonun id sini alıyordu hep yani olduğu yerde sayıyordu

öyle sadece koda bakıyordum aklıma bir şey dank etti

neden aynı id almasını engellemiyorum dedim kendi kendime cevap veremedim bu nedenle engelledim :D Ve son hali :

PHP:
$geri = @mysql_fetch_array(mysql_query("SELECT * FROM fotolar WHERE izlenme > '$izlenme' && aktif='1' && id<>'$fotoid' ORDER BY izlenme ASC LIMIT 1")

:tili :ehule

Erturk - Ahmet Akan - eL_master
:zıpla
Hepinize teşekkürler ilgilendiğiniz için sorun çözüldü. ;)
 

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.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst