• 08-07-2009, 20:19:50
    #1
    Merhabalar

    Veritabanından rastgele veri çekmek istiyorum fakat şöyle ki.
    Atıyorum kategori numarası 2 olan veriler arasından rastgele bir kayıt göstermek istiyorum. Beynim durdu yardım eden olursa çok sevinirim.
  • 08-07-2009, 20:31:47
    #2
    Üyeliği durduruldu
    randomize
    rastgelesayi=Int(Rnd*rs.recordcount)

    "where kategori_id=2 and id=rastgelesayi" sql de bu kısımla olur sanırım
  • 08-07-2009, 20:36:12
    #3
    Alıntı
    <%
    Set veysel = Server.CreateObject("ADODB.Connection")
    veysel.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("veritabani.mdb")
    set rs = server.createobject("ADODB.Recordset")
    sql = "select * from tablo"
    rs.open sql,veysel,1,3

    Randomize
    rastgele = Int((Rnd*Rs.RecordCount)+0)
    rs.Move(rastgele)
    response.write rs("field")
    %>
    normalde bu komut veri tabanından rastgele veri çeker. ancak kategori numarasına göre istediğiniz için


    Alıntı
    kategoriid=request.querystring("kategoiid")
    sql = "select * from tablo where kategoriid="&kategoriid&""

    şeklinde bir komut kullanmalısınız benimde biraz bazım ağrımakta sedefle aram kötü bugunler de pek rahat bırakmıyor anlatamadı isem üzgünüm ama mantık bu sekildedir


    gibi kullanmanız gerekmekte. Sanırım tüm veriyi
  • 08-07-2009, 20:46:32
    #4
    <%
    set rasgele = baglanti.execute("select * from oyun where kid=15 order by rand() limit 5")
    do while not rasgele.eof
    
    response.write rasgele("baslik")
    
    rasgele.movenext:loop
    rasgele.close:set rasgele = nothing
    %>
    İsviçreli profesörler tarafından test edilmiş ve onaylanmıştır.

    Edit: Ben mysql veritabanı kullandığım için mysql olanını yazdım, access'i hayatımdan sildim artık görüşmüyoruz, zaten yukarda arkadaşlar yazmış.
  • 08-07-2009, 22:55:31
    #5
    feryaz adlı üyeden alıntı: mesajı görüntüle
    randomize
    rastgelesayi=Int(Rnd*rs.recordcount)
    "where kategori_id=2 and id=rastgelesayi" sql de bu kısımla olur sanırım
    Bunu yemez neden dersen id=rastgelesayi tutmayacaktır çünki arada silinen kayıtlar vs. oluyor bunun yanı sıra kategori_id=2 dediğimiz için zaten aradan diğer kategorilerin kayıtları çıkacağı için yine id numarası tutmayacaktır.
    İlgine teşekkür ederim
    Misafir adlı üyeden alıntı: mesajı görüntüle
    normalde bu komut veri tabanından rastgele veri çeker. ancak kategori numarasına göre istediğiniz için
    şeklinde bir komut kullanmalısınız benimde biraz bazım ağrımakta sedefle aram kötü bugunler de pek rahat bırakmıyor anlatamadı isem üzgünüm ama mantık bu sekildedir
    gibi kullanmanız gerekmekte. Sanırım tüm veriyi
    Büyük ihtimalle böyle olacaktır deneme yapıp sonucu bildiricem.
    Peksoft adlı üyeden alıntı: mesajı görüntüle
    <%
    set rasgele = baglanti.execute("select * from oyun where kid=15 order by rand() limit 5")
    do while not rasgele.eof
    response.write rasgele("baslik")
    rasgele.movenext:loop
    rasgele.close:set rasgele = nothing
    %>
    İsviçreli profesörler tarafından test edilmiş ve onaylanmıştır.
    Edit: Ben mysql veritabanı kullandığım için mysql olanını yazdım, access'i hayatımdan sildim artık görüşmüyoruz, zaten yukarda arkadaşlar yazmış.
    Mysql çok gıcık herşey iyi güzel ama olmadık yerde hata verdiği zaman çıldırtıyor insanı. Ayrıca ufak bir script yazdım hatır için (zaten parayla script yazacak sinir sistemi kalmadı) bir arkadaşın babasına mysql destekli asp host aramayım diye mdb kullandım.
    dipnot: rand() özelliği hakkaten mükemmel


    Edit:
    Uykusuzluk yaradı herhalde çözdüm işi
    İhtiyacı olacak arkadaşlar için buyrunuz çalışan kod

    <%set reklam=server.CreateObject("ADODB.recordset")
    SQL_reklam="select * from reklamlar where alan_adi='Haber Altı'"
    reklam.open SQL_reklam,rek,1,1
    rndMax = CInt(reklam.RecordCount)  
    Randomize Timer  
    rndNumber = Int(RND * rndMax)
    reklam.Move rndNumber
    %>
    Gerisi sayfaya yazdırmak istediğiniz zamazingonun kodları.
  • 10-07-2009, 12:04:51
    #6
    MsSQL ve (muhtemelen) Access:

    sorgu="select top 1 * from tbl_firmalar where kategori=2 order by newid()"
  • 11-07-2009, 17:24:36
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Buda benden olsun (Ms Access'de kullanabilirsiniz)
    strSQL = "SELECt * FROm tblTabloAdi WHERE fldKategoriID = 1 ORDER BY Rnd(-(1000*fldFieldID)*Time())"