|
Yazan
|
Konu: Rastgele kayıt çekmek (Okunma Sayısı 624 defa)
|
reselda
Yeni Kullanıcılar
Offline
Mesaj Sayısı: 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
Mesaj Sayısı: 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
Mesaj Sayısı: 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
Mesaj Sayısı: 115
aggressiveness
|
kullandığın sorguyu yazarsan daha rahat ederiz.
|
|
|
|
|
Logged
|
|
|
|
reselda
Yeni Kullanıcılar
Offline
Mesaj Sayısı: 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
Mesaj Sayısı: 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
Mesaj Sayısı: 10
|
Döngü kurmam gerekiyo değilmi yinede?
|
|
|
|
|
Logged
|
|
|
|
turker
türker
PHP Öğrencisi
Offline
Mesaj Sayısı: 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
Mesaj Sayısı: 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
Mesaj Sayısı: 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
Mesaj Sayısı: 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
Mesaj Sayısı: 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
Mesaj Sayısı: 10
|
mail attım size. inşallah vakit bulup bakarsınız. kolay gelsin
|
|
|
|
|
Logged
|
|
|
|
reselda
Yeni Kullanıcılar
Offline
Mesaj Sayısı: 10
|
pardon mail değil mesaj attım
|
|
|
|
|
Logged
|
|
|
|
dhmm
Yeni Kullanıcılar
Offline
Mesaj Sayısı: 18
|
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
|
|
|
|
|
 |