Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Aktivasyon mailiniz gelmediyse buraya tıklayın.
09, 2008, 04:10:21 am
42744 Mesaj 8090 Konu Gönderen: 17931 Üye
Son üye: medist
Turk-Php.Com Forum  |  Yardım Forumları  |  Veritabanı Yardım Forumu  |  Rastgele kayıt çekmek « önceki sonraki »
Sayfa: [1] Yazdır
Yazan Konu: Rastgele kayıt çekmek  (Okunma Sayısı 624 defa)
reselda
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 10


Üyelik Bilgileri
Rastgele kayıt çekmek
« : 07, 2008, 03:46:46 am »

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 Offline

Mesaj Sayısı: 115


aggressiveness


Üyelik Bilgileri WWW
Ynt: Rastgele kayıt çekmek
« Yanıtla #1 : 07, 2008, 04:24:22 am »

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 Offline

Mesaj Sayısı: 10


Üyelik Bilgileri
Ynt: Rastgele kayıt çekmek
« Yanıtla #2 : 07, 2008, 04:41:33 am »

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 Offline

Mesaj Sayısı: 115


aggressiveness


Üyelik Bilgileri WWW
Ynt: Rastgele kayıt çekmek
« Yanıtla #3 : 07, 2008, 07:01:49 am »

kullandığın sorguyu yazarsan daha rahat ederiz.
Logged

reselda
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 10


Üyelik Bilgileri
Ynt: Rastgele kayıt çekmek
« Yanıtla #4 : 07, 2008, 10:37:18 am »

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 Offline

Mesaj Sayısı: 115


aggressiveness


Üyelik Bilgileri WWW
Ynt: Rastgele kayıt çekmek
« Yanıtla #5 : 07, 2008, 04:31:42 pm »

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 Offline

Mesaj Sayısı: 10


Üyelik Bilgileri
Ynt: Rastgele kayıt çekmek
« Yanıtla #6 : 08, 2008, 02:35:26 am »

Döngü kurmam gerekiyo değilmi yinede?
Logged
turker
türker
PHP Öğrencisi
*
Offline Offline

Mesaj Sayısı: 115


aggressiveness


Üyelik Bilgileri WWW
Ynt: Rastgele kayıt çekmek
« Yanıtla #7 : 08, 2008, 03:39:12 am »

asp bilmiyorum. random sayı üretmek için döngü kurman gerekiyorsa, evet kuracaksın o zaman Cheesy
Logged

reselda
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 10


Üyelik Bilgileri
Ynt: Rastgele kayıt çekmek
« Yanıtla #8 : 08, 2008, 03:51:20 am »

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 Offline

Mesaj Sayısı: 115


aggressiveness


Üyelik Bilgileri WWW
Ynt: Rastgele kayıt çekmek
« Yanıtla #9 : 08, 2008, 07:44:22 am »

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 Offline

Mesaj Sayısı: 10


Üyelik Bilgileri
Ynt: Rastgele kayıt çekmek
« Yanıtla #10 : 08, 2008, 07:50:41 am »

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 Offline

Mesaj Sayısı: 115


aggressiveness


Üyelik Bilgileri WWW
Ynt: Rastgele kayıt çekmek
« Yanıtla #11 : 09, 2008, 06:29:16 am »

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 Offline

Mesaj Sayısı: 10


Üyelik Bilgileri
Ynt: Rastgele kayıt çekmek
« Yanıtla #12 : 09, 2008, 07:55:54 am »

mail attım size. inşallah vakit bulup bakarsınız.
kolay gelsin
Logged
reselda
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 10


Üyelik Bilgileri
Ynt: Rastgele kayıt çekmek
« Yanıtla #13 : 09, 2008, 08:15:42 am »

pardon mail değil mesaj attım
Logged
dhmm
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 18


Üyelik Bilgileri
Ynt: Rastgele kayıt çekmek
« Yanıtla #14 : 03, 2008, 04:04:58 am »

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
Sayfa: [1] Yazdır 
« önceki sonraki »
Gitmek istediğiniz yer:  


Turk-Php.Com Forum | SMF Forum Software © 2005, Simple Machines LLC. All Rights Reserved.