|
Author
|
Topic: Rastgele kayıt çekmek (Read 627 times)
|
reselda
Yeni Kullanıcılar
Offline
Posts: 10
|
Arkadaşlar rastgele kayıt almak için sorguda rand kodunu kullanıyorum fakat veritabanında çok fazla kayıt var. doğal olarak ağırlaşıyo. ne yapabilirim?
|
|
|
|
|
Logged
|
|
|
|
turker
türker
PHP Öğrencisi
Offline
Posts: 115
aggressiveness
|
random sayısı php ile bul, sonra indexlenmiş ve unique integer alan varsa oradan where ile sorgu yap.
|
|
|
|
|
Logged
|
|
|
|
reselda
Yeni Kullanıcılar
Offline
Posts: 10
|
ben asp+mysql kullanıyorum. www.sanalisveris.com adresindeki orta bölümdeki ürünler için yapıyoru. bide 8 satır 4 sütündan oluşuyo ürünlerin geldiği tablo. har satırdaki ürünlerin kodu ayrı. yani ilk satır kodu 1 olan rastgele 4 ürün ikinci satır kodu 2 olan 4 ürün şeklinde gelmesi gerekiyo.
|
|
|
|
|
Logged
|
|
|
|
turker
türker
PHP Öğrencisi
Offline
Posts: 115
aggressiveness
|
kullandığın sorguyu yazarsan daha rahat ederiz.
|
|
|
|
|
Logged
|
|
|
|
reselda
Yeni Kullanıcılar
Offline
Posts: 10
|
kodlar bu şekilde:
sub orta1(grup_no) for a=0 to 8 tip="urun" if tip="urun" then
sql="SELECT distinct vitrin.tip,vitrin_kat.id,urun_dil_bilgi.urun_adi,vitrin.baslik,vitrin_kat.baslik,urun.ufak_foto, " sql=sql&" vitrin.banner,vitrin.urun_sayi,vitrin_kat.button,vitrin_kat.yazi,urun.urun_no, vitrin.siralama,urun_grup.grup_no,urun.satis_fiyat,urun.doviz,urun.kdv,urun.iskonto1,urun.iskonto2,urun.iskonto3,urun.iskonto4,marka.marka_adi" sql=sql&" FROM (vitrin" sql=sql&" Left Join vitrin_kat ON vitrin.id = vitrin_kat.id)" sql=sql&" Left Join urun ON vitrin_kat.urun_no = urun.urun_no" sql=sql&" Left Join urun_dil_bilgi ON urun.urun_no = urun_dil_bilgi.urun_no" sql=sql&" Left Join urun_grup ON urun.urun_no = urun_grup.urun_no" sql=sql&" Left Join marka ON urun.marka_no = marka.marka_no" sql=sql&" WHERE ((dil_id is null) or (dil_id="&dil&") ) and ((vitrin.bolum = 'orta') AND ((vitrin.aktif = 1))AND ((vitrin.siralama = "& a &")))" sql=sql&" order by rand() limit 4" end if
|
|
|
|
|
Logged
|
|
|
|
turker
türker
PHP Öğrencisi
Offline
Posts: 115
aggressiveness
|
urun.urun_no sütunun primary olarak idnelendiğini varsayıyorum
asp ile 4 tane random sayı üretiyorsun. order by kısmını silip where (urun.urun_no='random1' or urun.urun_no='random2'..) şeklide sorguyu kuruyorsun.
|
|
|
|
|
Logged
|
|
|
|
reselda
Yeni Kullanıcılar
Offline
Posts: 10
|
Döngü kurmam gerekiyo değilmi yinede?
|
|
|
|
|
Logged
|
|
|
|
turker
türker
PHP Öğrencisi
Offline
Posts: 115
aggressiveness
|
asp bilmiyorum. random sayı üretmek için döngü kurman gerekiyorsa, evet kuracaksın o zaman 
|
|
|
|
|
Logged
|
|
|
|
reselda
Yeni Kullanıcılar
Offline
Posts: 10
|
yok random için değil hani ilk sıraya siralama kodu 1 olanlardan rastgele 4 tane gelmesi gerekiyo sonra ikinci satıra siralama kodu 2 olanlardan rastgele 4 tane gelmesi lazım o yüzden döngü kurmak gerekiyo. ama ben mümkünse döngü kullanmasam iyi olur.
|
|
|
|
|
Logged
|
|
|
|
turker
türker
PHP Öğrencisi
Offline
Posts: 115
aggressiveness
|
tek sorguda da çekebilirsin. group by urun_id order by siralama_kod asc.
tabi bu durumda her bir sira için random 1er tane id bulman lazım... özetle, sql sorgusu veya tablo yapısı hatalı, eksik olabilir. İstediğin şeyi yapmak için birden fazla sorgu yapman gerekebilir. Spesifik birşey istediğin için biririn senin işin üzerinde düşünüp çözüm üretmesi lazım.
kolay gelsin.
|
|
|
|
|
Logged
|
|
|
|
reselda
Yeni Kullanıcılar
Offline
Posts: 10
|
evet haklısınız. bu benim istediğim bişey değil. işyerim öyle istiyo siteyi. ama ne yapabilirim bilmiyorum. düşünüyorum düşünüyorum yokkkk. nasıl bir çözüm bulunabilir. siz bana yardımcı olurmusunuz?
|
|
|
|
|
Logged
|
|
|
|
turker
türker
PHP Öğrencisi
Offline
Posts: 115
aggressiveness
|
yardımcı olabilmem için tablo yapılarını görmem lazım. içlerinde birkaç örnek veri olması lazım. boş vaktimin olması ve istediğin şey üzerinde düşünmem lazım ...
|
|
|
|
|
Logged
|
|
|
|
reselda
Yeni Kullanıcılar
Offline
Posts: 10
|
mail attım size. inşallah vakit bulup bakarsınız. kolay gelsin
|
|
|
|
|
Logged
|
|
|
|
reselda
Yeni Kullanıcılar
Offline
Posts: 10
|
pardon mail değil mesaj attım
|
|
|
|
|
Logged
|
|
|
|
dhmm
Yeni Kullanıcılar
Offline
Posts: 19
|
sayi=random(maxNUM)'i kullan tabi maxNUM degiskeninin icinde veritabanindaki en buyuk sayi olacak tabi sayi'nin veritabaninda olup olmadigini denetle cunlu rastgele olmayan bir sayi secerse o zaman HATA ILETISI alicaksin
|
|
|
|
|
Logged
|
|
|
|
|
 |