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

0
Onaylı Üye
Üye
Katılım
5 Temmuz 2004
Mesajlar
1,920
Tepki puanı
35
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
 
0
Onaylı Üye
Üye
Katılım
27 Ekim 2004
Mesajlar
1,817
Tepki puanı
51
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");
 
0
Onaylı Üye
Üye
Katılım
5 Temmuz 2004
Mesajlar
1,920
Tepki puanı
35
:) yok onur galiba anlatamadım şimdi şöyle
en son eklemiş olduğum 10 veri arasından 1 tanesini karışık ekrana basacak
 
0
Onaylı Üye
Üye
Katılım
12 Aralık 2004
Mesajlar
9,603
Tepki puanı
106
Konum
AZ
SELECT * FROM icerik WHERE icerik_no IN
(SELECT icerik_no FROM icerik ORDER BY icerik_no DESC LIMIT 10)
ORDER BY RAND()
 
  • Beğen
Reactions: Loi
0
Onaylı Üye
Üye
Katılım
5 Temmuz 2004
Mesajlar
1,920
Tepki puanı
35
Angelo malesef kod yemedi
şöyle bir hata verdi

PHP:
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
 
0
Onaylı Üye
Üye
Katılım
3 Şubat 2008
Mesajlar
56
Tepki puanı
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.
 
0
Onaylı Üye
Üye
Katılım
5 Temmuz 2004
Mesajlar
1,920
Tepki puanı
35
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 ?
 
0
Onaylı Üye
Üye
Katılım
31 Ekim 2007
Mesajlar
176
Tepki puanı
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
 
0
Onaylı Üye
Üye
Katılım
5 Temmuz 2004
Mesajlar
1,920
Tepki puanı
35
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
 
0
Onaylı Üye
Üye
Katılım
8 Kasım 2005
Mesajlar
717
Tepki puanı
16
$kat_list=mysql_query("SELECT * FROM fusion_film ORDER BY RAND() limit 10");
 
0
Onaylı Üye
Üye
Katılım
28 Mart 2010
Mesajlar
332
Tepki puanı
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.
 
0
Onaylı Üye
Üye
Katılım
3 Şubat 2008
Mesajlar
56
Tepki puanı
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
 
0
Onaylı Üye
Üye
Katılım
12 Aralık 2004
Mesajlar
9,603
Tepki puanı
106
Konum
AZ
Versiyon kaç ki, IN desteklemiyor.
 
0
Onaylı Üye
Üye
Katılım
24 Mart 2008
Mesajlar
424
Tepki puanı
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.
 
0
Onaylı Üye
Üye
Katılım
5 Temmuz 2004
Mesajlar
1,920
Tepki puanı
35
çö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 :(
 
0
Onaylı Üye
Üye
Katılım
14 Haziran 2010
Mesajlar
4
Tepki puanı
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.
 
Geri
Üst