Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Aktivasyon mailiniz gelmediyse buraya tıklayın.
Mayıs 12, 2008, 05:54:28 pm
41799 Mesaj 9073 Konu Gönderen: 17469 Üye
Son üye: blueboy21
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ı 329 defa)
reselda
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 10


Üyelik Bilgileri
Rastgele kayıt çekmek
« : Nisan 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ı: 95


aggressiveness


Üyelik Bilgileri WWW
Ynt: Rastgele kayıt çekmek
« Yanıtla #1 : Nisan 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 : Nisan 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ı: 95


aggressiveness


Üyelik Bilgileri WWW
Ynt: Rastgele kayıt çekmek
« Yanıtla #3 : Nisan 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 : Nisan 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ı: 95


aggressiveness


Üyelik Bilgileri WWW
Ynt: Rastgele kayıt çekmek
« Yanıtla #5 : Nisan 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 : Nisan 08, 2008, 02:35:26 am »

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

Mesaj Sayısı: 95


aggressiveness


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

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

reselda
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 10


Üyelik Bilgileri
Ynt: Rastgele kayıt çekmek
« Yanıtla #8 : Nisan 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ı: 95


aggressiveness


Üyelik Bilgileri WWW
Ynt: Rastgele kayıt çekmek
« Yanıtla #9 : Nisan 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 : Nisan 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ı: 95


aggressiveness


Üyelik Bilgileri WWW
Ynt: Rastgele kayıt çekmek
« Yanıtla #11 : Nisan 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 : Nisan 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 : Nisan 09, 2008, 08:15:42 am »

pardon mail değil mesaj attım
Logged
Sayfa: [1] Yazdır 
« önceki sonraki »
Gitmek istediğiniz yer: