• 08-04-2008, 15:42:01
    #1
    Merhaba arkadaşlar.
    Dbden rasgele veri çektirmek için random sayı döndermek, dbde karşılığı var mı yok mu diye kontrol edip bir de döngü kurmaya gerek yok. Sql sorgusuna bir sıralama fonksiyonu (order by NEWID() ) ekleyip dbden rasgele kayıt getirebiliyoruz.

    Sadece ASP değil tüm dillerdeki sql sorgularında kullanılabilir.

    Aspdeki kullanımı :
    <!--#include file="dbbaglanti.asp"-->
    <%
    set rasgelekayit = baglanti.execute("select * from tablo order by NEWID()")
    response.write rasgelekayit("sutun")
    rasgelekayit.close
    set rasgelekayit = nothing
    %>
    Kuracağınız bir döngü ile kayıtları tamamen rasgele ve benzersiz olarak sıralatabilirsiniz. Bunun için:
    <!--#include file="dbbaglanti.asp"-->
    <%
    set rasgelekayit = baglanti.execute("select top 5 * from tablo order by NEWID()")
    
    do while not rasgelekayit.eof
        response.write rasgelekayit("sutun")&"<br>"
        rasgelekayit.movenext
    loop
    rasgelekayit.close
    set rasgelekayit = nothing
    %>
    Son eklenen 5 kaydı listeletmek içinse "order by NEWID()" kısmını "order by id desc" olarak değiştirebilirsiniz.

    Umarım işinize yarar ki biliyorum yarayacak
  • 08-04-2008, 21:44:05
    #2
    Üyeliği durduruldu
    süpermiş, eline sağlık + rep
  • 08-04-2008, 22:21:40
    #3
    Üyeliği durduruldu
    Dostum mdb veritabanında yapabiliyormuyuz bunu
  • 08-04-2008, 23:00:38
    #4
    Erol adlı üyeden alıntı: mesajı görüntüle
    Dostum mdb veritabanında yapabiliyormuyuz bunu
    Malesef MDB de çalışmıyor.
  • 09-04-2008, 02:17:52
    #5
    Üyeliği durduruldu
    Senin bu yazdığın kod hiç bi işe yaramaz

    order by NEWID()
    ifadesi mssql de çalışmaz

    select top 5 *
    ifadesi de mysql de çalışmaz

    Mdb de de sen çalışmıyor demişsin eeee başka bilindik bir veritabanı da yoksa web de millet nerede kullanacak bu kodları ????????
  • 09-04-2008, 11:49:39
    #6
    Tuncsoft adlı üyeden alıntı: mesajı görüntüle
    Senin bu yazdığın kod hiç bi işe yaramaz
    order by NEWID()
    ifadesi mssql de çalışmaz
    select top 5 *
    ifadesi de mysql de çalışmaz
    Mdb de de sen çalışmıyor demişsin eeee başka bilindik bir veritabanı da yoksa web de millet nerede kullanacak bu kodları ????????
    Bilmiyorsan önce dene, sonra konuş. "order by NEWID()" mssqlde çalışır. Denemediysen yada beceremediysen orasını bilemem.
    "select top n" ise mdb de de mssql de de çalışır. Mysql denemedim. Mysql de istiyorsan limit kullanırsın.

    Paylaşım yapıyoruz burda, üslubun bu kadar sert olmasına anlam veremiyorum.