İyinet'e Hoşgeldiniz!

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

Kayıt Ol!

Son eklenen 10 veriyi karışık çıkartmak

KaRaKTeR

0
İyinet Üyesi
Katılım
6 Temmuz 2004
Mesajlar
1,920
Reaction score
36
merhaba arkadaşlar,

php de son eklediğim 10 tane içeriği karışık çıkacak şekilde yazdırmak istiyorum

PHP:
$db = dbquery("SELECT * FROM icerik ORDER BY icerik_no DESC LIMIT 0,1");

yardım ederseniz sevinirim
herkeze iyi çalışmalar
 

OnuR

0
İyinet Üyesi
Katılım
28 Ekim 2004
Mesajlar
1,817
Reaction score
52
Konum
makedonya
şunu dener misin?

PHP:
 $db = dbquery("SELECT * FROM icerik ORDER BY icerik_no DESC LIMIT 0, 10");

veya şu

PHP:
 $db = dbquery("SELECT * FROM icerik ORDER BY rand() DESC LIMIT 0,10");
 

KaRaKTeR

0
İyinet Üyesi
Katılım
6 Temmuz 2004
Mesajlar
1,920
Reaction score
36
:) yok onur galiba anlatamadım şimdi şöyle
en son eklemiş olduğum 10 veri arasından 1 tanesini karışık ekrana basacak
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
SELECT * FROM icerik WHERE icerik_no IN
(SELECT icerik_no FROM icerik ORDER BY icerik_no DESC LIMIT 10)
ORDER BY RAND()
 
  • Like
Reactions: Loi

KaRaKTeR

0
İyinet Üyesi
Katılım
6 Temmuz 2004
Mesajlar
1,920
Reaction score
36
Angelo malesef kod yemedi
şöyle bir hata verdi

PHP:
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
 

Dr.iq

0
İyinet Üyesi
Katılım
3 Şubat 2008
Mesajlar
56
Reaction score
0
Eğer çok veriniz varsa SQL ifadesi ile yapmak performans açısından kötü olur... bu söylediğinizi aşağıdaki SQL ifadesi ile yapabilirsiniz.

Kod:
select cekilecek_alan from (select cekilecek_alan from tablonuz order by id desc limit 10) as rastgele order by rand() limit 1
eğer id alanınız yoksa onun yerine tarih varsa tarih kullanın.. çok fazla veriniz varsa söyleyin php ile yapalım bu işlemi. çok veriler ile random işlemlerinde SQL kullanmak sunucuya işkence çektirtir.
 

KaRaKTeR

0
İyinet Üyesi
Katılım
6 Temmuz 2004
Mesajlar
1,920
Reaction score
36
Eğer çok veriniz varsa SQL ifadesi ile yapmak performans açısından kötü olur... bu söylediğinizi aşağıdaki SQL ifadesi ile yapabilirsiniz.

Kod:
select cekilecek_alan from (select cekilecek_alan from tablonuz order by id desc limit 10) as rastgele order by rand() limit 1
eğer id alanınız yoksa onun yerine tarih varsa tarih kullanın.. çok fazla veriniz varsa söyleyin php ile yapalım bu işlemi. çok veriler ile random işlemlerinde SQL kullanmak sunucuya işkence çektirtir.

id alanı var, yazdığınız kodu uyguladım ama yemedi şu şekilde
PHP:
$kwp_list = dbquery("select from (select from ilker_film order by film_no desc limit 10) as rastgele order by rand() limit 1");

yanlış yaptığım birşeymi var ?
 

BordoMavi

0
İyinet Üyesi
Katılım
31 Ekim 2007
Mesajlar
176
Reaction score
0
Konum
Hirçın Sulardan
id alanı var, yazdığınız kodu uyguladım ama yemedi şu şekilde
PHP:
$kwp_list = dbquery("select from (select from ilker_film order by film_no desc limit 10) as rastgele order by rand() limit 1");
yanlış yaptığım birşeymi var ?

sorgunda çekeceğin tabloyu belirtmemişsin.
dbquery("select from (select from ilker_film

şu kısımda "select from" demişsin tablodan hangi alanların çekileceğini yazmamışsın
 

KaRaKTeR

0
İyinet Üyesi
Katılım
6 Temmuz 2004
Mesajlar
1,920
Reaction score
36
Kodu şu şekilde düzelttim
PHP:
$kat_list = dbquery("select from fusion_film (select from fusion_film order by film_no desc limit 10) as rastgele order by rand() limit 1");

bu hatayı verdi
Kod:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from fusion_film (select from fusion_film order by film_no desc limit 10) as ras' at line 1
 

LaTenT

0
İyinet Üyesi
Katılım
8 Kasım 2005
Mesajlar
717
Reaction score
16
$kat_list=mysql_query("SELECT * FROM fusion_film ORDER BY RAND() limit 10");
 

superweb

0
İyinet Üyesi
Katılım
29 Mart 2010
Mesajlar
332
Reaction score
9
Konum
İstanbul
mysql sürümünüz 5.x.x ise önce aşağıdaki gibi bir view oluşturun;
Kod:
CREATE ALGORITHM = UNDEFINED VIEW `icerik_son_on_kayit` AS SELECT * FROM icerik order by icerik_no desc limit 0,10

sonra bu viewe;

Kod:
select * from icerik_son_on_kayit order by rand();

şeklinde sorgu çekebilirsiniz.

not: * yerine size lazım olan sütunları yazarsanız sorgu daha optimize olur.

Dr.iq arkadaşımızın sql cümlesinin farklı bir versiyonudur.
 

Dr.iq

0
İyinet Üyesi
Katılım
3 Şubat 2008
Mesajlar
56
Reaction score
0
id alanı var, yazdığınız kodu uyguladım ama yemedi şu şekilde
PHP:
$kwp_list = dbquery("select from (select from ilker_film order by film_no desc limit 10) as rastgele order by rand() limit 1");
yanlış yaptığım birşeymi var ?

yazdığım kodu aynen uygulamıyorsunuz

hangi field'ları seçeceğinizi belirtmemişsiniz..

from'dan önce olan yerlere seçilecek olan alanları yazın

select BURAYA_SECILECEK_ALANI_YAZIN from (select BURAYA_SECILECEK_ALANI_YAZIN from ilker_film order by film_no desc limit 10) as rastgele order by rand() limit 1
 

eRLySL

0
İyinet Üyesi
Katılım
25 Mart 2008
Mesajlar
424
Reaction score
1
merhaba arkadaşlar,
PHP:
$db = dbquery("SELECT * FROM icerik ORDER BY icerik_no DESC LIMIT 0,1");

PHP:
<? 
 $db = dbquery("SELECT * FROM icerik ORDER BY icerik_no DESC LIMIT 0,10");
echo $db[mt_rand(0,10)]['kolonadi'];
?>
bu şekilde denermisin ? Birde dbquery() nin içeriğini görebilirsek, daha faydalı ve kesin yardımcı olabilirim.
 

KaRaKTeR

0
İyinet Üyesi
Katılım
6 Temmuz 2004
Mesajlar
1,920
Reaction score
36
çözüm halen yok arkadaşlar :S herhalde son çare olarak tablo ekleyip numara verip aralarında karışık çıkartmak olacak o şekilde de yapmak istemiyorum :(
 

rohanrhu

0
İyinet Üyesi
Katılım
15 Haziran 2010
Mesajlar
4
Reaction score
0
$liste = mysql_fetch_array(mysql_query('select * from fusion_film order by film_no desc limit 10'));
shuffle($liste);

ile sonucu karışık bir şekilde alabilirsin.
 

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